【发布时间】:2014-05-31 19:01:53
【问题描述】:
我正在尝试向C++11 学习std::threads 来制作线程系统。
我想知道是否有一种方法可以在不终止整个程序的情况下阻止线程运行(不是休眠,而是真正破坏线程等等)。
我知道std::join 存在,但这会强制线程等待所有线程返回。
还有其他方法可以解决这个问题吗? (例如,无需阻塞线程即可创建ThreadPool 类?)
【问题讨论】:
-
开箱即用没有这种可能性。但您可以尝试 boost::thread 或编写自己的此功能实现
-
std::thread几乎知道线程实现必须知道的所有内容:1.) 创建线程 2.) 加入它。你不需要其他任何东西。不幸的是,优雅地“杀死线程”实际上是要求线程退出并在它退出时加入它。有时实现它是平台相关的,但对于事件/条件,您通常可以独立地实现它。
标签: c++ multithreading c++11 stdthread