gpt4 book ai didi

C++0x 线程中断

转载 作者:IT老高 更新时间:2023-10-28 13:24:24 24 4
gpt4 key购买 nike

根据 C++0x 最终草案,没有办法请求线程终止。也就是说,如果需要,我们需要实现自己动手的解决方案。

另一方面,boost::thread 提供了一种以安全方式中断线程的机制。

在您看来,最好的解决方案是什么?设计自己的合作“中断机制”还是原生?

最佳答案

所有语言规范都表示该支持并未内置于该语言中。boost::thread::interrupt 也需要线程函数的一些支持:

当被中断的线程下一次执行指定的中断点之一时(或者如果它当前在执行一个中断点时被阻塞)

即当线程函数没有给调用者一个中断的机会时,你仍然被卡住了。

我不确定你所说的“原生”是什么意思 - 没有原生支持,除非你被 boost:threads 迷住了。

不过,我还是会使用显式机制。无论如何,您必须考虑有足够的中断点,为什么不明确指出它们呢?根据我的经验,额外的代码通常是微不足道的,尽管您可能需要将一些等待从单个对象更改为多个对象,这取决于您的库 - 可能看起来更丑陋。


也可以拉“不要对控制流使用异常”,但与搞乱线程相比,这只是一个指导方针。

关于C++0x 线程中断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2790346/

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