解決上面的執行緒間通訊時再次加深執行緒加鎖的兩個必須注意的條件:
1.如果兩個執行緒操作的是同乙個資源就要加鎖
2.兩個執行緒的鎖,必須保證是同乙個鎖
packageday7
;/**
* 多執行緒,執行緒間通訊示例**
* *
對test
中線程間通訊出現的問題進行解決
* 加鎖
* 1.
保證操作同乙個資源的**全部加鎖
* 2.
保證加的鎖是統一個鎖
*@authormzy**/
public
class
test1
}class
res1
class
input1
implementsrunnable
public
void
run()
}else}x
=(x+
1)%2;
}}}classoutput1
implementsrunnable
public
void
run()}}
}以上的鎖可以用唯一的r物件,也可以使用test1.class、res.class、input.class、output.class這一類的位元組碼檔案,也是唯一的,最先被載入到記憶體中,且只有乙份。
畢向東講解(摘) 9 單例設計模式的回顧
懶漢式相比於餓漢式的優點就是延遲載入,但是如果在多執行緒中的話,懶漢式容易出問題,如果要考慮多執行緒的安全性,並且稍微提高一下懶漢式的速率,最好的辦法就是使用雙重判斷的方式,不過即使懶漢式在多執行緒中可以使用雙重判斷來解決,然而也不如餓漢式在多執行緒中的優勢,所以一般在多執行緒中我們選用餓漢式進行單...
學習筆記 Java 畢向東 建立執行緒
1 建立執行緒 繼承thread類 建立執行緒class demo extends thread public void run class mythreaddemo 售票程式class ticket extends thread class myticketdemo 2 建立執行緒 實現runna...
java畢向東聽課筆記10(異常)
異常 一般情況下,函式內出現異常,函式上需要宣告。發現列印的結果中只有異常的名稱,卻沒有異常的資訊。因為自定義的異常並未定義資訊。如何定義異常資訊呢?因為父類中已經把異常資訊的操作都完成了。所以子類只要在構造時,將異常資訊傳遞給父類通過super語句。那麼就可以直接通過getmessage方法獲取自...