首頁  >  文章  >  Java  >  舉例講解Java中synchronized關鍵字的用法

舉例講解Java中synchronized關鍵字的用法

高洛峰
高洛峰原創
2017-01-05 16:22:531391瀏覽

synchronized關鍵字顧名思義,是用於同步互斥的作用的。

這裡精簡的記一下它的使用方法以及意義:

1. 當synchronized修飾 this或者非靜態方法或者是一個實例的時候,所同步的鎖是加在this或者實例對象引用上面的。例如a,b同為Main類別的實例化對象,a呼叫被同步的方法,和b呼叫被同步的方法,沒有形成互斥。但是不同執行緒的a物件呼叫被同步的方法就被互斥了。

public synchronized void method(){
  //….
}
public void method()
{
  synchronized (this){
    //…..
  }
}

   

2.與1不同,當synchronized修飾類別名稱.class 或靜態方法的時候. 就算是不同對象,也會形成互斥

Class Main
{
  public synchronized static void method1(){
    //….
  }
  public void method2(){
    synchronized(Main.class) // 
  }
}

   

更多舉例講解Java中synchronized關鍵字的用法相關文章請關注PHP中文網!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn