Rob*_* W. 9 c++ multithreading boost boost-thread
我有几个长时间运行的boost线程,我希望能够通过中断它们来关闭它们.我能找到的所有文档都说你可以捕获thread_interrupted异常,但它并没有真正说明如果不这样做会发生什么.我认为它会杀死线程(并希望线程得到正确清理).但那个异常会因为线程而消失吗?或者它是否被传递到主线程并杀死它?
thread_interrupted
Ste*_*end 11
异常与任何其他C++异常一样.如果您选择不捕获它,它将产生与任何其他未处理的异常相同的效果.
如果未被捕获,它将不会传播到主线程,但可能会导致其他不良行为.例如,在Visual C++上,这将终止您的进程.
一般来说,防御性编程实践会指示您应该捕获代码可以抛出的任何异常 - 就像从您调用的OS API检查错误一样.
编写了很多Boost.Thread代码的人在这里有一个关于中断的背景资料.
归档时间:
14 年,7 月 前
查看次数:
3163 次
最近记录: