C++ 停止线程功能
C++ Stop thread from function
如何停止调用函数的线程?
void foo()
{
cout << hello << endl;
t.join(); //Is it possible to do something like this?
}
int main()
{
thread t(foo);
return 0;
}
我试图将自己传递为这样的参数:线程 t(foo, t),但它给了我一个错误。
当foo()
返回时,您的线程将自动终止。join
毫无意义——它永远不会回来。join() 只会等待该线程终止 - 在这种情况下永远不会发生。
如果您需要从另一个线程(例如您的主线程)终止一个线程,您需要自己进行通信。通过标志(和互斥锁/条件变量)或例如管道,如果您使用 select()
、poll()
或类似函数。
相关文章:
- 如何让线程继续并启动其他功能 - C++使用 OpenMP?
- 线程功能之一不执行可能的比赛条件
- XLL功能的线程安全
- 如何实现功能线程安全
- 线程安全性和静态变量/成员功能
- 串口读取功能的通信超时和线程不超时
- 从成员类功能创建线程
- 一个功能可以在几个线程上运行
- 多线程功能性能比单线螺纹差
- [[GNU :: pure]]功能属性和线程的优化问题
- 如何使用从Swift代码中调用的线程在C 上制作异步调用功能
- 检查Linux功能以设置线程优先级
- 在单独的线程中运行成员功能
- 如果其对象在多个线程中运行,我们是否需要锁定类成员功能
- 如何使用不同的线程访问Singleton类成员功能
- 分割故障,可能的原因:功能指针,多线程,STL地图等
- BOOST ::线程内会成员功能调用返回unique_lock Instantiation错误
- 查找最低值.功能.错误:线程 1:EXC_BAD_ACCESS(代码 = 1,地址 = 0x7fff5fc89000)
- STD线程呼叫模板模板类的成员功能:编译器错误
- 我需要在Boost线程功能中调用Unlock()