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”,它指定了线程开始执行的位置。) –