应用程序有一个辅助线程。这个线程并不意味着一直运行,但主进程可以经常调用它。
所以,我的问题是,就 CPU 性能而言,什么是更优化的:在线程未被使用时挂起线程或保持线程事件并使用 WaitForSingleObject 函数以等待来自主进程的信号?
最佳答案
就使用的 CPU 资源而言,两种解决方案是相同的 - 挂起的线程和在 WaitForSingleObject 中等待未发出信号的对象的线程都根本没有 CPU 周期。
也就是说,WaitForSingleObject 几乎总是一个首选的解决方案,因为使用它的代码会更加“自然”——更容易阅读,也更容易正确。挂起/恢复线程可能很危险,因为您需要格外小心以确保您知道您正在挂起一个线程,该状态下挂起它不会造成任何伤害(想象一下挂起一个当前持有互斥锁的线程)。
关于windows - 搁置线程是最优的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/131818/