synchronized鎖住的是什麼?

2021-10-01 02:32:54 字數 400 閱讀 2489

物件鎖:同步方法鎖住的是物件

a.乙個物件+有多個synchronized方法:某一時刻內,只要有乙個執行緒去呼叫其中乙個synchronized 方法,其他的執行緒都要等待。

b.乙個物件中+synchronized方法+非synchronized方法:某個執行緒訪問同步方法不影響其他執行緒訪問非同步方法

c.多個物件+多個同步方法:訪問不同的物件的同步方法不會相互影響

全域性鎖:靜態同步方法鎖的是當前的class物件

a.同乙個類的乙個物件或多個物件+乙個或多個靜態同步方法:只要呼叫乙個靜態同步方法,其他的靜態同步方法就不能用了,因為鎖住的是整個類

b.靜態同步方法和同步方法之間不存在競爭關係,呼叫靜態同步方法和同步方法不會相互影響

synchronized鎖住物件筆記

1.synchronized用在靜態方法的時候,表示執行這個方法時,將會把呼叫該方法的物件給鎖住。2.synchronized this 的時候,表示執行synchronized內的 時,鎖住this物件,也就是當前 所在類的物件。3.synchronized other class 的時候,表示執...

synchronized鎖住了誰

先來看一段 public class multithread else system.out.println tag tag num num catch interruptedexception e 注意觀察run方法輸出順序 public static void main string args ...

synchronized鎖住的物件問題

示例1 package com.執行緒間通訊 public class mutithread1 else catch interruptedexception e system.out.println tag tag a a public static void main string args t...