gpt4 book ai didi

c++ - 在不同的线程上调用和执行函数

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:59:02 28 4
gpt4 key购买 nike

比方说,我有这样一个程序代码:

    #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 上执行?谢谢。

最佳答案

是的,从线程的主函数发出的任何函数调用都将存在于该线程的私有(private)堆栈中。

关于c++ - 在不同的线程上调用和执行函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12818493/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com