为什么用Thread.Sleep函数把线程挂起时间?关于Thread.sleep的两个问题_世界时讯
我们可能经常会用到 Thread.Sleep 函数把线程挂起一段时间。那么你有没有正确的理解这个函数的用法呢?
思考下面这两个问题:
(资料图片)
问题一:
假设现在是 2008-4-7 12:00:00.000,如果我调用一下 Thread.Sleep(1000) ,在 2008-4-7 12:00:01.000 的时候,这个线程会不会被唤醒?
问题二:
某人的代码中用了一句看似莫明其妙的话:Thread.Sleep(0) 。既然是 Sleep 0 毫秒,那么他跟去掉这句代码相比,有啥区别么?
先回顾一下系统原理:
操作系统中,CPU竞争有很多种策略。Unix系统使用的是时间片算法,而Windows则属于抢占式的。
在时间片算法中,所有的进程排成一个队列。操作系统按照他们的顺序,给每个进程分配一段时间,即该进程允许运行的时间。如果在时间片结束时进程还在运行,则CPU将被剥夺并分配给另一个进程。如果进程在时间片结束前阻塞或结束,则CPU当即进行切换。调度程 序所要做的就是维护一张就绪进程列表,当进程用完它的时间片后,它被移到队列的末尾。
所谓抢占式操作系统,就是说如果一个进程得到了 CPU 时间,除非它自己放弃使用 CPU ,否则将完全霸占 CPU 。因此可以看出,在抢 占式操作系统中,操作系统假设所有的进程都是“人品很好”的,会主动退出 CPU 。
在抢占式操作系统中,假设有若干进程,操作系统会根据他们的优先级、饥饿时间(已经多长时间没有使用过 CPU 了),给他们算出一 个总的优先级来。操作系统就会把 CPU 交给总优先级最高的这个进程。当进程执行完毕或者自己主动挂起后,操作系统就会重新计算一 次所有进程的总优先级,然后再挑一个优先级最高的把 CPU 控制权交给他。
回答第一个问题:
对于第一个问题,答案是:不一定。因为你只是告诉操作系统:在未来的1000毫秒内我不想再参与到CPU竞争。那么1000毫秒过去之后,这时候也许另外一个线程正在使用CPU,那么这时候操作系统是不会重新分配CPU的,直到那个线程挂起或结束;况且,即使这个时候恰巧轮到操作系统进行CPU 分配,那么当前线程也不一定就是总优先级最高的那个,CPU还是可能被其他线程抢占去。
与此相似的,Thread有个Resume函数,是用来唤醒挂起的线程的。好像上面所说的一样,这个函数只是“告诉操作系统我从现在起开始参与CPU竞争了”,这个函数的调用并不能马上使得这个线程获得CPU控制权。
回答第二个问题:
对于第二个问题,答案是:有,而且区别很明显。Thread.Sleep(0)的作用,就是“触发操作系统立刻重新进行一次CPU竞争”。竞争的结果也许是当前线程仍然获得CPU控制权,也许会换成别的线程获得CPU控制权。这也是我们在大循环里面经常会写一句Thread.Sleep(0) ,因为这样就给了其他线程比如Paint线程获得CPU控制权的权力,这样界面就不会假死在那里。
标签: 操作系统
相关推荐:
最新新闻:
- 为什么用Thread.Sleep函数把线程挂起时间?关于Thread.sleep的两个问题_世界时讯
- iPhone 14Plus遇冷:不降价就买安卓!
- 马斯克:10万亿美元“改造地球” 专家说不靠谱
- 中兴通讯智慧家庭发布路由器新品小方糖 助推家庭网络千兆带宽普及 世界时讯
- Applewatch瑟瑟发抖!卡西欧推出G-SQUAD GBD-H2000智能手表 当前讯息
- iPhone中国换购价普降 iPhone 13 Pro折换价低了400元
- 每日快讯!大学老师撞脸《狂飙》高启盛 这压迫感谁不听课?
- 观天下!卡普空3月10日播出直播节目 将发布怪物猎人生化危机4等游戏新情报
- 《蜘蛛侠:平行宇宙2》新剧照曝光 蜘蛛侠2099亮相 格温紧随其后|环球新视野
- 《生化危机4:重制版》新演示和截图 里昂拯救黑丝碍事梨|当前滚动
- Mobileye荣获两大行业研究机构“自动驾驶领导者”评级-天天速看料
- 今日热讯:《堡垒之夜》将推出《生化危机》里昂、克莱尔联动皮肤
- iPhone 14 Pro同款“灵动岛”?realme C55手机官宣将于3月7日发布
- ALIENWARE外星人发布新款外设,扩展其不断增长的生态系统_前沿资讯
- 英特尔持续深耕数据中心渠道生态,聚合力赢未来 当前视点
- 屏下Face ID!iPhone 16 Pro大升级 报资讯
- 世界消息!《生化危机4》重制vs原版刀战对比:玩家实操机会更多!
- 中国载人航天总师:航天员见到外星人算星际合作|世界焦点
- 卖不动了!iPhone销量1月下跌11% 世界快播报
- 全球即时看!戴尔科技集团公布2023财年第四财季及全年财报
- 《黎明杀机》真人电影制作中 温子仁加盟|环球快看点
- 观天下!光荣版怪猎《狂野之心》分享赞誉宣传片
- 消息称动视收购案或将得到欧盟监管机构批准
- 《地狱之刃2》开发团队前后两次到冰岛实地取景
- 猫爬架也不安全 你做好这些准备了吗?
- 世界消息!抄底价!512GB M.2固态184元到手
- 女神节特惠!罗技爆款鼠标限时特惠229元
- 【当前独家】OpenAI允许App内嵌调用ChatGPT
- 人工智能加持?曝微软正在准备推出Windows 12|全球热闻
- 开放世界冒险《Tchia》PC配置公布 3月21日登陆Epic-当前快播
- 《FF16》宣发解禁!日本游戏店内摆满PS5实体盘盒
- 【独家焦点】《生化危机4:重制版》7分钟演示 刀战Jack Krauser
- 《卧龙:苍天陨落》M站评分解禁 均分81:微资讯
- 柯洁丢掉中国围棋等级分榜首 曾霸榜7年多|环球动态
- 最懂三国的游戏公司,并不在中国:当前快播
- 焦点快看:《卧龙》联动《永劫无间》 宁红夜、季沧海参战新DLC
- 俞敏洪称不太喜欢《狂飙》:民营企业家没一个好人
- 卧龙制作人:联动永劫无间!期待吸引中国动作游戏玩家
- 歹徒劫走汽车和小孩 大众称定位车辆要先续费被谴责|环球今亮点
- 特斯拉最新宏图第三章:新工厂、新能源计划、新机器人 快资讯
- Garmin佳明新一代Forerunner 265和Forerunner 965 GPS运动智能腕表闪亮登场
- 悦刻电子烟被罚20万:其广告涉嫌违反广告法!
- 《卧龙:苍天陨落》IGN 8分 战斗最好的魂类游戏
- 69岁成龙再跳摩天轮!《龙马精神》片场花絮曝光:环球信息
- 《黑豹2》《蚁人3》翻车:超级英雄电影为什么在中国遇冷?:天天快报
- 新人结婚朋友随100张刮刮乐 新娘:1000元开出500多
- 每日热闻!B站公布四季度财报:日活9千万 净亏损14.95亿元
- 环球报道:一加首款折叠屏手机官宣:将于今年晚些时候面世
- 固态硬盘价格新低,1TB只要249 元_当前时讯
- 2023款联想小新14轻薄本,13代i5处理器4199元
- 新学期新目标 三星GalaxyWatch5系列助力领跑开学季:实时焦点
- 固态硬盘价格新低,1TB只要249 元_当前时讯
- 热点在线丨《三体》电视剧豆瓣涨至8.6分 于和伟:像涨工资一样
- 3月15日7款游戏离开XGP 《漫威银护》《传说之下》等
- 今日视点:《最终幻想14》6.35版确定3月7日上线 新地下城任务等更新
- 儿子篮球班倒闭家长花1000万买下 网友:这就是钞能力:当前视点
- 叙事RPG《奇唤士》中文实机演示发布 发售日期待定|环球热门
- 广州2023大中专学生医保待遇标准一览(门诊+住院)
- 硬核配置强悍性能,三星玄龙骑士电竞显示器细节打造超感体验_全球看点
- 天天实时:特斯拉人形机器人自己造自己,马斯克承认其数量将超人类
- 是德科技收购Cliosoft,进一步壮大EDA软件产品线 每日资讯
- 3.8女王节送礼指南|汉印小粉饼标签机让生活更精彩
- 全球速讯:日立水墅适VF全变频新品:引领墅适大宅智慧风向
- 乔尔大危机?《最后生还者》第二季有望年内开拍:当前消息
- 《死侍》出租司机加盟《蜘蛛侠:平行宇宙2》 饰演印度蜘蛛侠
- 首次个人演唱会高桥李依给出小提醒:宅男记得洗澡!_当前关注
- 人大代表新建议 应该尽快出台《反网络暴力法》
- 天天微动态丨特斯拉确认将于墨西哥建立下一个超级工厂
- 假面骑士系列登陆B站 《假面骑士极狐》3月5日首播|全球观察
- 特斯拉人形机器人自己造自己 能自我繁衍了?_环球观速讯
- 国产显卡理论性能追上GTX 1650
- 谁在定义“无缝式嵌入”设计?TCL正在引发一场蜕变 时快讯
- 15万就能买特斯拉?就问你慌不慌?
- 京东百亿补贴商品已上架:全网最低价 买贵赔双倍
- 河南小伙打造1:1歼10战斗机模型 耗资百万完美复刻-每日速讯
- 《卧龙》30秒TV宣传片释出 乱世中原群雄并起|世界热文
- 《卧龙:苍天陨落》登Steam平台热销榜第一:妖魔三国太有魅力!_天天快报
- 【全球独家】卧龙苍天陨落结义等级怎么提升?卧龙苍天陨落武将结义方法
- 卧龙苍天陨落情谊酒杯怎么获得?卧龙苍天陨落情谊酒杯在哪刷?-天天快消息
- 天天动态:《GT7》VR版IGN评测9分 令人惊叹的模拟赛车游戏
- 短讯!迪士尼新片《幽灵鬼屋》海报 灵感来自同名游乐设施
- 【天天新要闻】杨在葆个人资料_杨在葆个人简介
- 《艾尔登法环》热烈讨论新DLC:或探索米凯拉的梦境 今日播报
- 恐怖冒险游戏《午夜地铁》NS下载版3月16日发售
- 光荣《赛马大亨10》PS版预购开启 3月30日多平台发售