synchronized鎖重入問題

2021-10-25 05:41:52 字數 768 閱讀 5648

先說結論:乙個執行緒得到了乙個物件的方法後,還可以呼叫這個物件的其他加鎖的方法,乙個執行緒執行在進入了子類的方法後,還可以呼叫父類的加鎖方法。

如下面所示:

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...