首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当您想要测试interruption_requested()时,为什么要使用boost interruption_requested?

当您想要测试interruption_requested()时,为什么要使用boost interruption_requested?
EN

Stack Overflow用户
提问于 2015-03-17 12:54:28
回答 1查看 920关注 0票数 0

我看到很多地方的代码都是这样的:

代码语言:javascript
复制
void threadFunction()
{
    boost::this_thread::disable_interruption disable;
    while (!boost::this_thread::interruption_requested())
    {
            //do stuff
    }
}

对我来说,这看起来像是“禁用”线程函数,使其不被中断,但我再次测试是否有中断。奇迹般地起作用了。有人能给我解释一下它在幕后到底做了什么吗?谢谢!

EN

回答 1

Stack Overflow用户

发布于 2015-03-17 12:56:45

disable_interruption防止线程实际被中断;它不阻止设置中断状态。然后interruption_requested测试是否设置了中断状态。

参见Boost文档:特别是“中断”部分

各种方法被归类为“中断点”,如果请求中断时调用它们,则会抛出异常,除非中断已被禁用。

因此,简而言之:

  • 禁用中断可以阻止中断实际停止线程,但中断仍然将线程标记为“中断请求”。
  • interruption_requested方法检查是否请求了中断。
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29099617

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档