【发布时间】:2010-10-30 13:52:24
【问题描述】:
我看到了一个关于为什么“投票不好”的问题。就最小化一个线程使用的处理器时间而言,最好是进行自旋等待(即轮询 while 循环中所需的更改)还是等待内核对象(例如 Windows 中的内核事件对象) ?
对于上下文,假设代码需要在任何类型的处理器、单核、超线程、多核等上运行。还假设轮询或等待的线程在轮询结果令人满意之前无法继续如果它轮询而不是等待。最后,线程开始等待(或轮询)和满足条件之间的时间可能会很短,也可能很长。
由于操作系统在“等待”的情况下可能更有效地“轮询”,我不想看到“等待只是意味着其他人进行轮询”的说法,这是旧消息,不一定100% 准确。
【问题讨论】:
-
感谢到目前为止所有回复的人。回复速度和质量都给我留下了深刻的印象。
标签: performance multithreading wait polling