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

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

内容简介: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


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

查看所有标签

猜你喜欢:

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

金融计算与建模

金融计算与建模

朱世武 / 清华大学 / 2007-8 / 40.00元

《金融计算与建模:理论、算法与SAS程序》全书分为4大模块:1-9章为金融学基础指标计算模块;10-12章为股票定价模块;13-18章为风险度量模块;19-23章为固定收益定价模块。每一模块的内容一般由三部分组成:金融理论与模型、算法实现及计算程序。其中,算法实现与计算程序全部以中国金融市场的实际问题为应用背景而设计。《金融计算与建模:理论、算法与SAS程序》不仅展现了应用SAS软件的技术,同时也......一起来看看 《金融计算与建模》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

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

Markdown 在线编辑器

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具