.net – Thread.Sleep(0)和Thread.Yield()之间的区别

栏目: ASP.NET · 发布时间: 5年前

内容简介:http://stackoverflow.com/questions/2956961/difference-between-thread-sleep0-and-thread-yield
由于 Java 早已有睡眠和收益,所以我发现这个平台是 answers ,而不是.Net

.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


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

秩序之美

秩序之美

Vinh / 人民邮电 / 2011-5 / 35.00元

怎样才能设计出简洁大方而不落于俗套的超人气网站?纽约时报网站的资深设计师Khoi Vinh在这《秩序之美——网页中的网格设计》一书中将为你揭示其中的奥秘。   《秩序之美——网页中的网格设计》将源自传统平面设计、被众多平面设计大师推崇的网格设计方法应用于网页设计,向读者详细介绍了网格设计成熟而经典的设计模式,并以整个网站的设计为例,对工作流程、设计工具和方法进行了系统而全面的介绍,手把手教读......一起来看看 《秩序之美》 这本书的介绍吧!

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具