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)区别相关推荐

  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是本地还回地址,专供自己访问自己,速度快(不用经过整个协议栈),永远都不能出现在主机外部的网络中,所 ...

  2. a[0]和a 的区别?

    &a[0]和&a 的区别? 1)a[0]是一个元素,a 是整个数组. 2),虽然&a[0]和&a的值一样,但其意义不一样.前者是数组首元素的首地址,而后者是数组的首地址 ...

  3. android 5.0 ios 8,Android 5.0和iOS8.1哪个好?安卓5.0与iOS8.1区别对比

    Android和iOS显然是目前最受欢迎的移动平台,也是最大的两个竞争者.在今年,谷歌和苹果都对各自的系统进行了更新,其中iOS8.1已经正式推送,相信各位苹果用户已经正在使用:而Android 5. ...

  4. 计算机的USB是什么,usb2.0和3.0的区别,教您电脑usb2.0和3.0的有什么区别

    随着电脑的不断普及,现在的人们越来越离不开电脑.同时随着电脑的普及,高速USB3.0时代也随之到来,不过很多用户对USB2.0和USB3.0不知道如何区别,有用户不禁问电脑usb2.0和3.0的有什么 ...

  5. count(*)、count(1)、count(0)、count(列名)区别

    count(*).count(1).count(0).count(列名)区别 1.count(*).count(1): count(*)对行的数目进行计算,包含NULL,count(1)这个用法和co ...

  6. http介绍(3)http1.0 和http1.1 区别

    翻了下HTTP1.1的协议标准RFC2616,下面是看到的一些它跟HTTP1.0的差别. 1. Persistent Connection持久连接      在HTTP1.0中,每对Request/R ...

  7. python exit 0_python中 os._exit() 和 sys.exit(), exit(0)的用法和区别

    os._exit() 和 sys.exit() os._exit() vs sys.exit() 概述 Python的程序有两中退出方式:os._exit(), sys.exit().本文介绍这两种方 ...

  8. CSS中设置border属性为0与none的区别

    在我们设置CSS的时候,对标签元素不设置边框属性或者取消边框属性一般设置为:border:none;或border:0;两种方法均可. border:none;与border:0;的区别体现有两点:一 ...

  9. border:0 none,border:none;,border:0;三者之间的区别

    border:0; 时把border设为0像素,虽然在页面上看不到,但按border默认值理解,浏览器依然对border-width/border-color进行了渲染,即已经占用了内存值. bord ...

  10. vue3.0和vue2的区别

    一.默认进行懒观察(lazy observation) 在 2.x 版本里,不管数据多大,都会在一开始就为其创建观察者.当数据很大时,这可能会在页面载入时造成明显的性能压力.3.x 版本,只会对「被用 ...

最新文章

  1. 故障模块名称kernelbase.dll_TLY-01L12/16宜宾智能照明调光模块
  2. 【Alpha】开发日志Day8-0719
  3. AUTOSAR从入门到精通100讲(七十九)-AUTOSAR基础篇之DTC
  4. mysql ndb还原数据库_ndb_restore恢复出错
  5. Creative主题电子科技企业类discuz模板
  6. Windows10下安装Tensorflow
  7. php中的list()用法中要注意的地方
  8. 计算机表演赛怎么打用户名,赛事报名操作指南 | 第28届中国儿童青少年威盛中国芯HTC计算机表演赛...
  9. MySQL 第二次练习(源码安装、数据库和表的建立)
  10. 寄生电容/寄生电阻/寄生电感
  11. xshell如何设置选中复制_Xshell
  12. NI CompactRIO、labview在车载数据采集中的应用
  13. 反馈抑制器使用场景与市场
  14. 那些IT行业的经典定律
  15. 实现Web前端 live2dw小人物的显示
  16. 数模转换DAC-TLC5615的说明
  17. 删除有外键关联的表报错,Cannot delete or update a parent row: a foreign key constraint fails
  18. OkHttp的Okio在CacheInterceptor中的应用
  19. select属性标签
  20. MySQL面试题——in是否使用【索引】

热门文章

  1. 各大音乐网站爬虫大全
  2. 携创教育:成人自考大专需要什么条件?要几年拿证?
  3. 智慧商业,连锁革命 | 10月13日TF77
  4. 阿里巴巴神马搜索一面
  5. 视频教程-Docker虚拟化容器-区块链
  6. 群晖如何建php网站_折腾群晖笔记:使用群晖自带的web功能 五分钟搭建typecho个人博客...
  7. windows下虚拟环境的安装与使用
  8. 微信小程序腾讯地图自定样式真机不生效
  9. Java8中Collectors的使用
  10. 记录一次参加D2前端技术论坛的杭州之行 1