Sleep 0 及其使用場景

2021-04-20 06:06:54 字數 409 閱讀 1719

sleep(n)的作用是讓當前執行緒睡眠n毫秒,以便執行其他執行緒,如果沒有其他執行緒,那睡眠n毫秒後,繼續執行。

而如果n=0,sleep(0)是指cpu交出當前執行緒的執行權,讓cpu去執行其他執行緒。也就是放棄當前執行緒的時間片,轉而執行其他執行緒。

那麼,sleep(0)應該在那種情況下使用? 一般來說,如果當前執行緒比較耗時比較佔cpu資源,可以在結尾處加上sleep(0), 這樣效率會得到大大的提高。

void setcopyfile(short progress) }

如上**,由於該**處於乙個多執行緒執行的環境中,而拷貝progress又是不停的進行,不斷地呼叫postmessage()函式,同時還要做訊息對映,執行訊息相應函式等等,因此這是乙個比較耗時的過程,此時,sleep(0)就派上用場了,加在後面,讓其他執行緒也能及時得到執行。

Sleep 0 及其使用場景

sleep n 的作用是讓當前執行緒睡眠n毫秒,以便執行其他執行緒,如果沒有其他執行緒,那睡眠n毫秒後,繼續執行。而如果n 0,sleep 0 是指cpu交出當前執行緒的執行權,讓cpu去執行其他執行緒。也就是放棄當前執行緒的時間片,轉而執行其他執行緒。那麼,sleep 0 應該在那種情況下使用?一...

Sleep 0 及其使用場景

sleep n 的作用是讓當前執行緒睡眠n毫秒,以便執行其他執行緒,如果沒有其他執行緒,那睡眠n毫秒後,繼續執行。而如果n 0,sleep 0 是指cpu交出當前執行緒的執行權,讓cpu去執行其他執行緒。也就是放棄當前執行緒的時間片,轉而執行其他執行緒。那麼,sleep 0 應該在那種情況下使用?一...

Sleep 0 及其使用場景

sleep n 的作用是讓當前執行緒睡眠n毫秒,以便執行其他執行緒,如果沒有其他執行緒,那睡眠n毫秒後,繼續執行。而如果n 0,sleep 0 是指cpu交出當前執行緒的執行權,讓cpu去執行其他執行緒。也就是放棄當前執行緒的時間片,轉而執行其他執行緒。那麼,sleep 0 應該在那種情況下使用?一...