先說結論:乙個執行緒得到了乙個物件的方法後,還可以呼叫這個物件的其他加鎖的方法,乙個執行緒執行在進入了子類的方法後,還可以呼叫父類的加鎖方法。
如下面所示:
package com.lydon.thread;
public class syncdubbo
public synchronized void method2()
public synchronized void method3()
public static void main(string args)
});thread.start();
}}
輸出結果為:
i am method1
i am method2
i am method3
同樣的,對於子類呼叫父類的同步方法,也是可以的
package com.lydon.thread;
public class syncdubbo2 catch (interruptedexception e) }}
static class submain extends main
} catch (interruptedexception e) }}
public static void main(string args)
});thread.start();
}}
一定要保證子類父類都是synchronized修飾的,不然就會出現執行緒 安全問題 synchronized 鎖的重入
1 乙個同步方法呼叫另外乙個同步方法,能否得到鎖?重入 synchronized預設支援重入 slf4j topic test public class demo catch interruptedexception e test2 為什麼test2還需要加sync 他本身就包含在test1 而te...
synchronized鎖的重入問題
我們知道通過synchronized關鍵字修飾的方法或 塊在同一時刻只能被乙個執行緒訪問,還有一種就是鎖的重入問題,就是乙個執行緒可以訪問多個被synchronized修飾的方法或 塊,如下 package com.xiayc.sync public class reentrantsynchroni...
Synchronized可重入鎖分析
可重入鎖又稱遞迴鎖,是指在同乙個執行緒在外層方法獲取鎖的時候,再進入該執行緒的內層方法會自動獲取鎖 前提是鎖物件必須是同一物件或者class 不會因為之前已經獲取過還沒實方而發生阻塞。即同一執行緒可執行多個持有同乙個鎖的方法。先來一段 public class reentrantsynchroniz...