Windows編程--線程的睡眠方式

來源:互聯網
上載者:User


線程也能告訴系統,它不想在某個時間段內被調度。這是通過調用Sleep函數來實現的:

VOID Sleep(DWORDdwMilliseconds);

該函數可使線程暫停自己的運行,直到dwMilliseconds過去為止。關於Sleep函數。

 

有下面幾個重要問題值得注意:

1、調用Sleep,可使線程自願放棄它剩餘的時間片。

2、系統將在大約的指定毫秒數內使線程不可調度。如果告訴系統,想睡眠100ms,那麼可以睡眠大約這麼長時間,但是也可能睡眠數秒鐘或者數分鐘。記住, Windows不是個即時作業系統。雖然線程可能在規定的時間被喚醒,但是它能否做到,取決於系統中還有什麼操作進行中。

3、可以調用Sleep,並且為dwMilliseconds參數傳遞INFINITE。這將告訴系統永遠不要調度該線程。這不是一件值得去做的事情。最好是讓線程退出,並還原它的堆棧和核心對象。

4、可以將0傳遞給Sleep。調用線程將釋放剩餘的時間片,並迫使系統調度另一個線程。但是,系統可以對剛剛調用Sleep的線程重新調度。如果不存在多個擁有相同優先順序的可調度線程,就會出現這種情況。

 

FangSH 2010-12-28

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.