multithreading - 获取对当前boost::thread/中断主线程的引用

标签 multithreading boost boost-thread interruptions

我试图获取对执行的主要boost::thread的引用,以便可以中断它。
但是,boost::thread似乎没有提供任何方式。

我在互联网上进行了搜索,但似乎找不到该问题的答案。
我确实看到了一些旧答案,但它们似乎与旧的Boost代码有关。
最接近的人说,使用boost::thread t;(默认构造函数)将为我提供对当前线程的引用。但是,boost文档似乎说这将创建对非线程的引用。

我的主要目标是中断主线程,而不是引用当前的boost::thread,但这似乎是最简单的方法。

我当前的解决方案是从main创建一个新线程,然后将其join()。有什么方法可以获取当前线程对象(或中断它),而不使用此替代方法?

谢谢

最佳答案

一个默认构造的boost::thread对象用于(在v1.34和更早版本中)引用当前线程,但是不再引用当前线程。

您不能在boost中中断主线程。最好的方法是启动一个新线程来完成工作,然后从main()中加入它。

关于multithreading - 获取对当前boost::thread/中断主线程的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5172843/

相关文章:

c++ - boost::thread 在终止时会自动从 boost::thread_group 中删除吗?

javascript - 为什么Java可以无限循环?对此有何建议

java - Java 服务器中每个游戏室的线程?

python - 从基于 Gunicorn 的 Web session 终止异步多处理线程

java - java中读/写变量的原子操作

C++:Boost:如何检查我的工作目录中另一个文件夹中是否存在一个文件夹?

c++ - 除了与旧标准代码一起使用外,Boost 库在包含在 C++ 中后会发生什么变化?

c++ - 注册到 boost io_service 的每个对象的回调函数是什么?

c++ - boost::thread 生成线程时出现运行时错误

c++ - 阻塞调用后立即调用方法