第四章 物件的組合

2022-03-17 00:33:54 字數 452 閱讀 5195

三個基本要素 : 

如果不了解物件的不變性條件與後驗條件,那麼就不能確保執行緒安全性.

要滿足在狀態變數的有效值或狀態轉換上的各種約束條件, 則需要借助於原子性和封裝性.

如果某個操作有基於狀態的先驗條件, 則該操作稱為依賴狀態的操作.

等待某個條件為真的各種內建機制都與內建加鎖緊密關聯.

一種更簡單的方法是通過現有庫中的類(阻塞佇列[block queue] 或者 訊號量[semaphore]) 來實現依賴狀態的操作.

狀態變數的所有者將決定採用何種加鎖協議來維持狀態變數的完整性.

物件發布之前擁有其狀態變數的所有權.發布之後又共享控制權.

將資料封裝在物件內部,將資料的訪問和操作限制在物件的方法上,從而更容易的確保執行緒訪問資料時總能持有正確的鎖.

封閉機制更易於構造執行緒安全的類.

將物件所有的可變狀態封裝起來,並有物件自己的內建鎖來保護.

第四章 物件

三個特性 身份 型別 值 每個物件都有唯一的身份來標識自己,使用內建函式id 得到。例子 usr bin env python coding utf 8 a 32 print a b a print id a id b 結果 d python27 python.exe e workp python ...

第四章 python物件

4.1 python 物件 所有的python 對像都擁有三個特性 身份,型別和值。身份 每乙個物件都有乙個唯一的身份標識自己,任何物件的身份可以使用內建函式id 來得到。這個值可以被認為是該物件的記憶體位址。您極少會用到這個值,也不用太關心它究竟是什麼。型別物件的型別決定了該物件可以儲存什麼型別的...

第四章 物件導向 2

類被 載入的順序 1.載入 static 靜態修飾的 內容 屬性 方法 塊 2.載入建構函式 先載入 父類的建構函式 在載入 子類的建構函式 3.在從上到下 載入 基本屬性 和 方法 許可權修飾符 private 私有 許可權,在建立的物件 或者本類中使用 default 同乙個包中的類 才能訪問 ...