第十章 避免活躍性危險

2022-06-09 12:33:08 字數 488 閱讀 5489

1.死鎖

檢測死鎖:在等待關係的有向圖中搜尋迴圈。

產生死鎖的4個必要條件:

1)互斥條件:共享資源獨佔訪問

2)不可剝奪條件:不能強制其他執行緒釋放資源

3)請求和保持條件:在等待申請的新的資源時,繼續占有已分配的資源

4)迴圈等待條件:發生死鎖時,存在乙個迴圈等待的佇列 p1等待p2占有的資源,p2等待p3占有的資源,...,pn等待p1占有的資源。

2.死鎖的預防:

1.資源一次性分配

2.當某程序新申請的資源未獲取時,釋放已獲取的資源

3.資源有序分配,給資源分配編號,每個資源按編號遞增請求資源,釋放則相反

3.死鎖的避免:銀行家演算法

參考:4.其他活躍性危險

1.飢餓:常見的場景是因為優先順序低而一直得不到資源,無法執行。不建議給執行緒設定優先順序,使用thread.yield主動讓出cpu資源

2.活鎖:不停重試不可能成功的事件,而無法處理其他的任務。

第十章 函式

使用def關鍵字 定義個數可變的位置形參 定義個數可變的關鍵字形參 定義預設值引數 定義個數可變的位置形參 deffun1 args 結果為乙個元組 print args fun1 10,20,30 10,20,30 定義個數可變的關鍵字形參 deffun2 args 結果為乙個字典 print a...

第十章 屬性

z屬性 本章也比較簡單稍作介紹 無參屬性就是我們常見的屬性 可以封裝屬性 以執行緒安全方式訪問 有參屬性就是c 中的所引器 匿名型別 如圖遇到如下 具體點就是 上面的注釋也已經講清楚了,定義的型別之後,構造例項,然後初始化屬性。現在詳細說下 編譯器接收到 上圖 先用var 定義乙個型別,但是不具體指...

第十章 屬性

目錄 10.1 無參屬性 10.2 有參屬性 10.3 呼叫屬性訪問器方法時的效能 10.4 屬性訪問器的可訪問性 10.5 泛型屬性訪問器方法 物件導向設計和程式設計的重要原則之一就是資料封裝,意味著型別的字段不應該公開,否則很容易因為不恰單使用欄位而破壞物件的狀態。可將屬性想象成智慧型字段,即背...