Sleep函式的真正用意

2021-09-06 22:31:50 字數 613 閱讀 3747

**:

關於void sleep(dword dwmilliseconds);函式,許多人都覺得,它是告訴系統,延遲多少毫秒來執行後面的**。

但是,在windows這樣的非實時多工系統中,我們是無法估算會睡眠多久的。因為乙個執行緒不是總是被執行的。它會在執行一段時間後,被系統暫停,然後系統又去執行另外的執行緒**。於是,sleep函式的解釋如下:

以前我做程式的時候也用過sleep來作為控制程式執行速度的方法。現在想來,的確很欠考慮。

關於這個函式更具權威的解釋(抄書):

1、呼叫sleep,可使執行緒自願放棄它剩餘的時間片。

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

3、可以呼叫sleep(infinite),告訴系統永遠不要呼叫這個執行緒。但最好不要這樣,讓執行緒退出就行了。反正你都不再需要它。或者呼叫sleep(0);告訴系統執行緒將放棄剩於的時間片,並使系統排程另乙個執行緒。但是,系統可以對剛剛呼叫sleep的執行緒重新排程。如果不存在多個擁有相同優先順序的可排程執行緒。就會出現這種情況。

Sleep函式的真正用意

關於void sleep dword dwmilliseconds 函式,許多人都覺得,它是告訴系統,延遲多少毫秒來執行後面的 但是,在windows這樣的非實時多工系統中,我們是無法估算會睡眠多久的。因為乙個執行緒不是總是被執行的。它會在執行一段時間後,被系統暫停,然後系統又去執行另外的執行緒 於...

const cast的真正用途 以前部落格的內容

不廢話,貼 如果如下所示,最後a的結果是12,如果定義的時候把a定義為int a,就列印12.c primer 原話是 如果常量本身不是常量,獲得的許可權是合法的,如果本身是常量,使用const cast再寫的後果是未定義的。所以如果單純int a,是好理解的,就是達到了我們的目的。如果a本身就是c...

真正用來學習微機原理及彙編的好書

我買過一本微機原理 上學的教材就不算了 兩本彙編 黃皮和黑皮 都是國內的教科書,通過一段時間的學習,我感覺真的是很困難,我一直在懷疑是不是我的智商有問題,不過我沒有放棄,我共去了西單圖書大廈四趟,算是把微機原理和彙編方面的書都瀏覽了一遍,現在可以做個總結了。家不在北京的朋友,可以參考我的意見,希望通...