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上執行?謝謝。
是的,SomeFunction()從第二個線程(MyThread()中的一個)執行。 –
是的。線程是執行的線程。 (實際上,如果你看代碼,你可以看到這個函數被稱爲「start_routine」,它指定了線程開始執行的位置。) –