内容简介:http://stackoverflow.com/questions/2956961/difference-between-thread-sleep0-and-thread-yield
.Net 4包括新的Thread.Yield()静态方法.以前将CPU转移到其他进程的常见方法是Thread.Sleep(0).
除了Thread.Yield()返回一个布尔值,还有其他性能,OS内部的差异?
例如,我不知道如果Thread.Sleep(0)检查是否有其他线程准备好运行之前更改当前线程等待状态…如果不是这种情况,当没有其他线程准备好,Thread.Sleep (0)似乎比Thread.Yield()更糟糕.
正如Eric Lippert在封面博客上解释的那样,展示了如何实现锁定 –
source.NET Framework为您提供了多种可用于构建更复杂的等待策略的工具:Thread.SpinWait将处理器置于紧密循环中,允许您等待几纳秒或微秒,而无需控制另一个线程. Thread.Sleep(0)将控制权控制为任何等同优先级的线程,如果没有,线程将继续保持当前线程. Thread.Yield控制任何与当前处理器相关的就绪线程.正如我们已经看到的Thread.Sleep(1)将控制权放在任何操作系统选择的线程上.通过仔细选择这些调用的组合,并在现实条件下进行性能测试,您可以构建高性能实现,当然这也是CLR团队实际做的.
http://stackoverflow.com/questions/2956961/difference-between-thread-sleep0-and-thread-yield
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
松本行弘的程序世界
松本行弘 / 柳德燕、李黎明、夏倩、张文旭 / 人民邮电出版社 / 2011-8 / 75.00元
《松本行弘的程序世界》是探索程序设计思想和方法的经典之作。作者从全局的角度,利用大量的程序示例及图表,深刻阐述了Ruby编程语言的设计理念,并以独特的视角考察了与编程相关的各种技术。阅读《松本行弘的程序世界》不仅可以深入了解编程领域各个要素之间的关系,而且能够学到大师的思考方法。 《松本行弘的程序世界》面向各层次程序设计人员和编程爱好者,也可以供相关技术人员参考。一起来看看 《松本行弘的程序世界》 这本书的介绍吧!