Sleep(0)与Sleep(1)区别
1、问题
在线程中我们会经常按如下写代码,Sleep(0)比Sleep(1)更容易获得时间片
DWORD WINAPI SampleThread(PVOID pvParam)
{while ( true ){// do somethingSleep(1);}return 0x50;
}
2、原因
MSDN说明如下:
Remarks
This function causes a thread to relinquish the remainder of its time slice and become unrunnable for at least the specified number of milliseconds, after which the thread is ready to run. In particular, if you specify zero milliseconds, the thread will relinquish the remainder of its time slice but remain ready. Note that a ready thread is not guaranteed to run immediately. Consequently, the thread may not run until some time after the specified interval elapses. For more information, see Scheduling Priorities.
Sleep(1)导致线程释放剩余的时间片,并停止运行至少1毫秒,然后恢复为就绪状态。
Sleep(0)导致线程释放剩余的时间片,并立即进入就绪状态。
所以如果有两个同等优先级的线程一个使用Sleep(1),一个使用Sleep(0),后者将更多的抢到时间片。
Sleep(0)与Sleep(1)区别相关推荐
- 127.0.0.1和0.0.0.0和localhost的区别
127.0.0.1和0.0.0.0和localhost的区别 127.0.0.1 172.0.0.1是本地还回地址,专供自己访问自己,速度快(不用经过整个协议栈),永远都不能出现在主机外部的网络中,所 ...
- a[0]和a 的区别?
&a[0]和&a 的区别? 1)a[0]是一个元素,a 是整个数组. 2),虽然&a[0]和&a的值一样,但其意义不一样.前者是数组首元素的首地址,而后者是数组的首地址 ...
- android 5.0 ios 8,Android 5.0和iOS8.1哪个好?安卓5.0与iOS8.1区别对比
Android和iOS显然是目前最受欢迎的移动平台,也是最大的两个竞争者.在今年,谷歌和苹果都对各自的系统进行了更新,其中iOS8.1已经正式推送,相信各位苹果用户已经正在使用:而Android 5. ...
- 计算机的USB是什么,usb2.0和3.0的区别,教您电脑usb2.0和3.0的有什么区别
随着电脑的不断普及,现在的人们越来越离不开电脑.同时随着电脑的普及,高速USB3.0时代也随之到来,不过很多用户对USB2.0和USB3.0不知道如何区别,有用户不禁问电脑usb2.0和3.0的有什么 ...
- count(*)、count(1)、count(0)、count(列名)区别
count(*).count(1).count(0).count(列名)区别 1.count(*).count(1): count(*)对行的数目进行计算,包含NULL,count(1)这个用法和co ...
- http介绍(3)http1.0 和http1.1 区别
翻了下HTTP1.1的协议标准RFC2616,下面是看到的一些它跟HTTP1.0的差别. 1. Persistent Connection持久连接 在HTTP1.0中,每对Request/R ...
- python exit 0_python中 os._exit() 和 sys.exit(), exit(0)的用法和区别
os._exit() 和 sys.exit() os._exit() vs sys.exit() 概述 Python的程序有两中退出方式:os._exit(), sys.exit().本文介绍这两种方 ...
- CSS中设置border属性为0与none的区别
在我们设置CSS的时候,对标签元素不设置边框属性或者取消边框属性一般设置为:border:none;或border:0;两种方法均可. border:none;与border:0;的区别体现有两点:一 ...
- border:0 none,border:none;,border:0;三者之间的区别
border:0; 时把border设为0像素,虽然在页面上看不到,但按border默认值理解,浏览器依然对border-width/border-color进行了渲染,即已经占用了内存值. bord ...
- vue3.0和vue2的区别
一.默认进行懒观察(lazy observation) 在 2.x 版本里,不管数据多大,都会在一开始就为其创建观察者.当数据很大时,这可能会在页面载入时造成明显的性能压力.3.x 版本,只会对「被用 ...
最新文章
- 故障模块名称kernelbase.dll_TLY-01L12/16宜宾智能照明调光模块
- 【Alpha】开发日志Day8-0719
- AUTOSAR从入门到精通100讲(七十九)-AUTOSAR基础篇之DTC
- mysql ndb还原数据库_ndb_restore恢复出错
- Creative主题电子科技企业类discuz模板
- Windows10下安装Tensorflow
- php中的list()用法中要注意的地方
- 计算机表演赛怎么打用户名,赛事报名操作指南 | 第28届中国儿童青少年威盛中国芯HTC计算机表演赛...
- MySQL 第二次练习(源码安装、数据库和表的建立)
- 寄生电容/寄生电阻/寄生电感
- xshell如何设置选中复制_Xshell
- NI CompactRIO、labview在车载数据采集中的应用
- 反馈抑制器使用场景与市场
- 那些IT行业的经典定律
- 实现Web前端 live2dw小人物的显示
- 数模转换DAC-TLC5615的说明
- 删除有外键关联的表报错,Cannot delete or update a parent row: a foreign key constraint fails
- OkHttp的Okio在CacheInterceptor中的应用
- select属性标签
- MySQL面试题——in是否使用【索引】