2

たとえば、次のようなプログラム コードがあるとします。

    #include <iostream>  
    #include <Windows.h>

    #include <tbb/tbb.h>


    void SomeFunction()
    {
            // do something
    }        

    void MyThread(int arg)
    {
        std::cout << "This is a thread function\n" << std::endl;

        for (int i = 0; i < 10000; i++)
        {
            arg++;
            Sleep(1);
        }

            SomeFunction();
    }

    int main ()
    {
        tbb::tbb_thread pMyThread = tbb::tbb_thread(MyThread, 3);

        pMyThread.join();

        return 0;
    }

上記から、main() が別のスレッド pMyThread で MyThread() を呼び出していることがわかります。そして MyThread() は SomeFunction() を呼び出しています。さて、SomeFunction() (または MyThread() によって呼び出されるその他の関数) は pMyThread でも実行されますか? ありがとう。

4

1 に答える 1

0

はい、スレッドのメイン関数から発行された関数呼び出しは、そのスレッドのプライベート スタックに存在します。

于 2012-10-10T11:43:21.823 に答える