<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      深入分析Sleep(0)與Sleep(1)的區別

      深入分析Sleep(0)與Sleep(1)的區別
      羅朝輝 (http://www.rzrgm.cn/kesalin/)
      CC許可,轉載請注明出處

      目的:

      有時候我們想讓線程不被調度一定的時間,也就是說讓線程睡眠一段時間。

      API 接口:

      在 Win32中可以調用 Sleep,SleepEx 和 SwitchToThread 三個API。

      VOID WINAPI Sleep(DWORD dwMilliseconds);

      DWORD WINAPI SleepEx(DWORD dwMilliseconds, BOOl bAlertable);

      BOOl WINAPI SwitchToThread();

      在托管代碼中,我們可以調用靜態方法 Thread.Sleep。

      分析:

      Sleep 接口均帶有表示睡眠時間長度的參數 timeout。調用以上提到的 Sleep 接口,會有條件地將調用線程從當前處理器上移除,并且有可能將它從線程調度器的可運行隊列中移除。這個條件取決于調用 Sleep 時timeout 參數。

      當 timeout = 0, 即 Sleep(0),如果線程調度器的可運行隊列中有大于或等于當前線程優先級的就緒線程存在,操作系統會將當前線程從處理器上移除,調度其他優先級高的就緒線程運行;如果可運行隊列中的沒有就緒線程或所有就緒線程的優先級均低于當前線程優先級,那么當前線程會繼續執行,就像沒有調用 Sleep(0)一樣。

      當 timeout > 0 時,如:Sleep(1),會引發線程上下文切換:調用線程會從線程調度器的可運行隊列中被移除一段時間,這個時間段約等于 timeout 所指定的時間長度。為什么說約等于呢?是因為睡眠時間單位為毫秒,這與系統的時間精度有關。通常情況下,系統的時間精度為 10 ms,那么指定任意少于 10 ms但大于 0 ms 的睡眠時間,均會向上求值為 10 ms。

      而調用 SwitchToThread() 方法,如果當前有其他就緒線程在線程調度器的可運行隊列中,始終會讓出一個時間切片給這些就緒線程,而不管就緒線程的優先級的高低與否。

      結論:

      由上面的分析可以看出,如果我們想讓當前線程真正睡眠一下子,最好是調用 Sleep(1) 或 SwitchToThread()

      posted @ 2012-10-11 20:08  飄飄白云  閱讀(9562)  評論(8)    收藏  舉報
      本博客遵循 Creative Commons License “署名-非商業用途-保持一致”創作共用協議。 與我聯系
      主站蜘蛛池模板: 成人看的污污超级黄网站免费| 99在线精品国自产拍中文字幕| 一区二区三区黄色一级片| 美女又黄又免费的视频| 人成午夜免费视频无码| 国产做a爱片久久毛片a片| 国产精品一区二区人人爽| 亚洲精品日韩在线观看| 国产乱色国产精品免费视频 | 亚洲无人区码二码三码区| 内射无套内射国产精品视频| 亚洲AV日韩AV激情亚洲| 韩国午夜福利片在线观看| 国产精品污一区二区三区| 欧美激情综合色综合啪啪五月| 四房播色综合久久婷婷| 欧美黑人性暴力猛交在线视频| 亚洲一级片一区二区三区| 亚洲午夜福利精品无码不卡| 无码中文av波多野结衣一区| 惠州市| 国产日韩av二区三区| 最近中文字幕免费手机版| 国产精品久久久久AV福利动漫| 国产一区二区不卡91| 亚洲18禁一区二区三区| 久久一级精品久熟女人妻| 天堂中文8资源在线8| 麻豆一区二区三区蜜桃免费| 国产精品成人久久电影| 中文字幕国产精品综合| 天天爽天天摸天天碰| 亚洲成精品动漫久久精久| 国产在线精品福利91香蕉| 大胸美女被吃奶爽死视频| 无码激情亚洲一区| 四虎网址| 人妻丝袜无码专区视频网站| 免费无码中文字幕A级毛片| 麻豆aⅴ精品无码一区二区| 一亚洲一区二区中文字幕|