亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

C#中如何使用Sleep?

C#中如何使用Sleep?

C#
函數式編程 2018-09-12 21:15:14
C#中如何使用Sleep
查看完整描述

1 回答

?
哆啦的時光機

TA貢獻1779條經驗 獲得超6個贊

Thread.Sleep 函數來使線程掛起一段時間.在指定的毫秒數內讓當前正在執行的線程休眠(暫停執行),此操作受到系統計時器和調度程序精度和準確性的影響。該線程不丟失任何監視器的所屬權。簡單點說Sleep函數就是他告訴操作系統“在未來的多少毫秒內我不參與CPU競爭”。

例如Thread.Sleep(1000) ,表示線程休眠1000毫秒,時間過了之后再繼續執行程序。

在時間片算法中,所有的進程排成一個隊列。操作系統按照他們的順序,給每個進程分配一段時間,即該進程允許運行的時間。如果在 時間片結束時進程還在運行,則CPU將被剝奪并分配給另一個進程。如果進程在時間片結束前阻塞或結束,則CPU當即進行切換。調度程 序所要做的就是維護一張就緒進程列表,當進程用完它的時間片后,它被移到隊列的末尾。

所謂搶占式操作系統,就是說如果一個進程得到了 CPU 時間,除非它自己放棄使用 CPU ,否則將完全霸占 CPU 。因此可以看出,在搶占式操作系統中,操作系統假設所有的進程都是“人品很好”的,會主動退出 CPU 。在搶占式操作系統中,假設有若干進程,操作系統會根據他們的優先級、饑餓時間(已經多長時間沒有使用過 CPU 了),給他們算出一 個總的優先級來。操作系統就會把 CPU 交給總優先級最高的這個進程。當進程執行完畢或者自己主動掛起后,操作系統就會重新計算一次所有進程的總優先級,然后再挑一個優先級最高的把 CPU 控制權交給他。

擴展資料:

時間片即CPU分配給各個程序的時間,每個線程被分配一個時間段,稱作它的時間片,即該進程允許運行的時間,使各個程序從表面上看是同時進行的。如果在時間片結束時進程還在運行,則CPU將被剝奪并分配給另一個進程。如果進程在時間片結束前阻塞或結束,則CPU當即進行切換。而不會造成CPU資源浪費。在宏觀上:我們可以同時打開多個應用程序,每個程序并行不悖,同時運行。但在微觀上:由于只有一個CPU,一次只能處理程序要求的一部分,如何處理公平,一種方法就是引入時間片,每個程序輪流執行。

參考資料:百度百科-時間片  百度百科-C#


查看完整回答
反對 回復 2018-09-24
  • 1 回答
  • 0 關注
  • 810 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號