多執行緒《四》從Synchronized理解重入鎖

2021-09-07 19:21:23 字數 1261 閱讀 8093

當乙個執行緒得到乙個物件鎖後,再次請求此物件鎖時是可以再次得到該物件的鎖。這也證明在乙個synchronized方法/塊的內部呼叫本類的其他synchronized方法/塊時候,是永遠可以得到鎖的。

1

public

class

syncreuseservice

67 synchronized public

void

service2()

1112 synchronized public

void

service3()15}

1617

public

class

syncreuseservicethread extends thread 24}

2526

public

class

threadrunmain

3031

public

static

void

testsyncreuseservicethread()

35 }

執行結果:

當存在父子繼承關係時,子類也可以通過「可重入鎖」呼叫父類的同步方法。

1

public

class

fatherclass catch

(interruptedexception e) 11}

1213}14

15public

class

sunclass extends fatherclass

24 } catch

(interruptedexception e) 27}

28}2930

public

class

fathersunthread extends thread 37}

3839

public

class

threadrunmain

4344

public

static

void

testfathersunthread()

48 }

執行結果:

Java執行緒同步問題synchronized

android usb 讀寫以前都是一讀一寫,但有些機器會出問題。就採用讀寫非同步的方法。使用物件鎖,object自帶的,然後使用object的方法wait和notify notifyall 使用方法簡單,記錄下 public synchronized int lra setregister int...

Java學習之執行緒鎖 synchronized

同步 併發 多個執行緒訪問同乙份資源 確保資源安全 執行緒安全 synchronized 同步 1 同步塊 synchronized 引用型別 this 類.class 2 同步方法 public synchronized void test public class testsyn class t...

c 多執行緒(四)

執行緒間通訊 主線程建立子執行緒必定會為主執行緒分擔一部分工作,這樣不可避免的會在這兩個執行緒之間存在訊息傳遞渠道,因此主線程和子執行緒之間要進行通訊。下面介紹幾種通訊方式 全域性變數 由於同一程序的各個執行緒之間共享該程序的資源,因此,解決執行緒間通訊最簡單的方式是使用全域性變數。對於標準型別的全...