第七章 執行緒排程 優先順序和關聯性

2021-06-27 06:54:22 字數 671 閱讀 6189

一、resumethread

1、喚醒執行緒,將掛起計數減一。

2、無法自己喚醒自己

二、suspendthread

1、掛起執行緒,將掛起計數加一。

2、可以自己掛起自己。

3、它是非同步的。

4、需要防止產生鎖。

三、sleep

1、讓乙個執行緒睡眠一段時間。

2、傳入infinite 讓執行緒永遠睡眠。

3、傳入0,讓執行緒放棄剩餘的時間片,然後立即重新再呼叫該執行緒。

四、switchtothread

1、讓當前執行緒放棄剩餘時間片,去執行乙個飢餓的執行緒。

五、getthreadcontext

1、獲取執行緒上下文。

六、執行緒優先順序

1、執行緒的優先順序由程序優先順序和執行緒優先順序組成。

2、程序優先順序有6級,99%的程式在normal級。

3、執行緒優先順序有31級,系統總是給最高端的執行緒分配cpu,高優先順序的執行緒總是搶占低優先順序的cpu,

4、getpriorityclass/setpriorityclass、getthreadpriority 可以設定程序優先順序,但不可設定執行緒優先順序。

5、系統可能會動態提公升執行緒的優先順序,有setprocesspriorityboost可以禁止此操作。

6、系統可以微調某個執行緒的時間片。

七(1 5) 執行緒的排程 優先順序和關聯性

基本概念 windows為搶占式系統,必須使用某種演算法確定何時應該呼叫哪些執行緒以及需要分配多少時間等。系統使用context結構記住執行緒狀態,在下一次獲得cpu時間時就可以從上一次停止處繼續。context結構是唯一乙個特定於cpu的資料結構 cpu上的每乙個暫存器都對應乙個資料成員,因此co...

運算子優先順序和關聯性

c 語言包括所有 c 運算子並新增多個新的運算子。運算子指定對下列項之一執行計算 運算子遵循嚴格的優先順序,該優先順序定義了包含這些運算子的表示式的計算順序。運算子與其左側或右側的表示式關聯 這稱為 關聯性 下表顯示 c 運算子的優先順序和關聯性 從最高優先順序到最低優先順序 表的同一段中的運算子具...

設定執行緒優先順序和排程演算法的例項

設定執行緒優先順序和排程演算法的例項 include include void thread one info void printf thread ld in thread one info function n long pthread self void thread two info voi...