gpt4 book ai didi

C++ 从函数中停止线程

转载 作者:行者123 更新时间:2023-11-30 02:40:15 25 4
gpt4 key购买 nike

如何从调用的函数中停止线程?

void foo()
{
cout << hello << endl;
t.join(); //Is it possible to do something like this?
}

int main()
{
thread t(foo);
return 0;
}

我曾尝试像这样将其自身作为参数传递:thread t(foo, t) 但它给了我一个错误。

最佳答案

foo() 返回时,您的线程将自动终止。 join 毫无意义——它永远不会返回。 join() 只会等待该线程终止——在这种情况下永远不会发生。

如果您需要从另一个线程(例如您的主线程)终止一个线程,您需要自己进行通信。通过标志(和互斥锁/条件变量)或例如管道,如果您使用 select()poll() 或类似函数。

关于C++ 从函数中停止线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29071456/

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