java多執行緒同步之物件鎖區分

2021-08-19 04:06:07 字數 565 閱讀 6478

多執行緒同步:多個執行緒共同協作正確的執行任務。

我們經常見到多執行緒同步關鍵字synchronized,那它到底是利用誰做同步鎖呢。

要想實現多執行緒同步,必須要保證同步鎖是共享唯一的。

synchronized一般用於3中場景:

1.非靜態方法

2.靜態方法

3.**塊

一、非靜態方法

同步鎖指當前方法所在的物件例項,如果物件是單例,則可以實現執行緒同步。

public synchronized void run() 

}

二、靜態方法

同步鎖指當前方法所在的類,類是唯一的,所以一定可以實現執行緒同步。

public static synchronized void test()

三、**塊

同步鎖可以自定義,但要保證是唯一。

public void run() 

}}

這裡的this,指當前方法所在類的例項,如果是單例,就是唯一的。

Java多執行緒 鎖物件

前面總結了多個執行緒訪問同乙個物件的同步方法以同步執行,多個執行緒訪問多個物件的同步方法則以非同步方式執行,那如果多個執行緒分別訪問乙個物件中同步方法和非同步方法會如何執行那?demo myobject類 包含了乙個同步方法和乙個非同步方法 public class myobject catch i...

多執行緒同步之互斥鎖

對於多執行緒程式來說,同步是指在一定的時間內只允許某乙個執行緒訪問某個資源 而在 此時間內,不允許其他的執行緒訪問該資源。同步資源的方式 互斥鎖 條件變數 讀寫鎖 訊號量。下面介紹下互斥鎖 將互斥鎖想象成乙個只能容納乙個人的洗手間,當某個人進入洗手間的時候,可以從 裡面將洗手間鎖上,其他人只能在互斥...

JAVA多執行緒 執行緒的同步與鎖

執行緒的同步與鎖 l 執行緒的同步是為了防止多個執行緒訪問乙個資料物件時,對資料造成的破壞。1 執行緒同步的目的是為了保護多個執行緒反問乙個資源時對資源的破壞。2 執行緒同步方法是通過鎖來實現,每個物件都有且僅有乙個鎖,這個鎖與乙個特定的物件關聯,執行緒一旦獲取了物件鎖,其他訪問該物件的執行緒就無法...