第四章 Lock的使用

2021-08-31 11:53:16 字數 719 閱讀 1181

前面講了使用synchronized來實現執行緒的同步, 這次使用lock物件來實現。乙個類學學api感覺沒啥意思

記住乙個類reentranlock類, lock = new reentranlock(); lock.lock; …; lock.unlock; 在這之間的

**就能實現同步,跟synchronized的同步**塊一模一樣。

synchronized + wait()/notify() 可以實現執行緒間的通訊

reentranlock + condition.await()/condition.signal()也可以,而且更加靈活, 可以實現多路通知。也就是說可以選擇性的通知

哪個或者哪些執行緒,在排程上更加靈活。

使用condition.await()/condition.signal()實現 選擇性通知執行緒的方法。尼瑪就是多建立幾個condition,

在不同的同步**塊中使用不同的condition

private condition conditiona = lock.newcondition();

private condition conditionb = lock.newcondition();

公平鎖和非公平鎖

公平鎖:執行緒獲取鎖的順序是按照執行緒加鎖的順序來分配的 lock = new reentranlock(isfair)

非公平鎖:一種搶占機制

後面的東西從來沒見用過,直接pass. 沒意思

第四章 繼承

一 為什麼要繼承 在物件導向中我們將具有很多重複內容的類中的內容提取出來,寫成乙個單獨的類 其他類只需要繼承就能取得這些功能,同時可以在自己類中寫入獨特的自定義方法 二 繼承語法 inte ce circle nsobject 繼承是在介面中定義的 冒號後的類名是要整合的類,nsobject 是co...

第四章 物件

三個特性 身份 型別 值 每個物件都有唯一的身份來標識自己,使用內建函式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 ...

第四章 其他

sizeof和strlen 區別sizeof以位元組為單位給出資料的大小,strlen 函式以字元為單位給出字串的長度。使用strlen 函式要加 include標頭檔案。sizeof計算字元時會將標誌字串結束的不可見的空字元計算在內。定義符號常量 方法一 define name value 優點 ...