内容简介: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
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
父与子的编程之旅
桑德 (Warren Sande)、桑德 (Carter Sande) / 苏金国、易郑超 / 人民邮电出版社 / 2014-10-1 / CNY 69.00
本书是一本家长与孩子共同学习编程的入门书。作者是一对父子,他们以Python语言为例,详尽细致地介绍了Python如何安装、字符串和操作符等程序设计的基本概念,介绍了条件语句、函数、模块等进阶内容,最后讲解了用Python实现游戏编程。书中的语言生动活泼,叙述简单明了。 为了让学习者觉得编程有趣,本书编排了很多卡通人物及场景对话,让学习者在轻松愉快之中跨入计算机编程的大门。 第 2 版新增内......一起来看看 《父与子的编程之旅》 这本书的介绍吧!