我已经阅读了一些有关将消息从线程冒泡到所有其他线程以优雅退出的正确方法的资料(每个线程执行其自己的退出例程)。其中,我喜欢全局原子布尔值的想法,它可以从任何线程进行标记,并且所有其他线程检查此标记以执行退出例程 - 当所有线程都加入时,主线程可以退出应用程序。
纯粹的计算线程可能会有不同的处理方式,对吗?
这样高效、安全吗?有一个更好的方法吗?
Thanks!
我不喜欢线程检查布尔(或其他)状态变量来知道何时做什么,因为这是浪费。线程必须旋转,不断检查变量以查看是否有新指令。这会烧毁CPU。
更好的选择是创建一个信号量或在 Windows 中创建一个事件,并让所有线程等待该信号量。线程可以在不忙时休眠,并且不会从其他执行实际工作的线程中窃取时间片,只是为了检查变量。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)