C ++多线程延迟启动

解码

我想知道在哪种情况下std::launch::deferred是必需的。

据我所知,多线程的目的是另一个线程将在后台处理某些事情或进行计算,并在任务完成时返回一个值。它应该在创建线程后立即开始。话虽这么说,为什么我们需要这种推迟发射呢?

x

话虽这么说,为什么我们需要这种推迟发射呢?

这个问题类似于询问为什么&&||操作员具有短路行为。如果运算结果由LHS确定,则短路行为将导致测试中表达式的RHS未被评估。可以通过使用多个if语句来表示短路行为因此,该语言提供了多种表达同一想法的方法。

类似地,通过显示所有涉及的任务可以更清楚地表达软件组件,即使由于组件不需要其他任务即可完成其工作,也并非实际上执行了所有任务。当然,可以通过仅在任务真正需要运行之前不表达任务来编写不同的软件。

作为示例,代码可以初始化任务数组,并使用循环对其进行迭代。但是,break从循环的早期开始将避免执行其余任务。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章