日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

synchronized的用法

發布時間:2024/4/13 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 synchronized的用法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

根據修飾對象分類

  • 同步方法
  • 同步非靜態方法
  • Public synchronized void methodName(){……}
  • 同步靜態方法
  • Public synchronized static void methodName(){……}
  • 同步代碼塊
  • synchronized(this|object) {}

    synchronized(類.class) {}

    Private final Object MUTEX =new Object();Public void methodName(){Synchronized(MUTEX ){……}}

    根據獲取的鎖分類

  • 獲取對象鎖
  • synchronized(this|object) {}

    修飾非靜態方法

    在 Java 中,每個對象都會有一個 monitor 對象,這個對象其實就是 Java 對象的鎖,通常會被稱為“內置鎖”或“對象鎖”。類的對象可以有多個,所以每個對象有其獨立的對象鎖,互不干擾。

  • 獲取類鎖
  • synchronized(類.class) {}

    修飾靜態方法

    在 Java 中,針對每個類也有一個鎖,可以稱為“類鎖”,類鎖實際上是通過對象鎖實現的,即類的 Class 對象鎖。每個類只有一個 Class 對象,所以每個類只有一個類鎖。

    ?

    ?

    在 Java 中,每個對象都會有一個 monitor 對象,監視器。

  • 某一線程占有這個對象的時候,先monitor 的計數器是不是0,如果是0還沒有線程占有,這個時候線程占有這個對象,并且對這個對象的monitor+1;如果不為0,表示這個線程已經被其他線程占有,這個線程等待。當線程釋放占有權的時候,monitor-1;
  • 同一線程可以對同一對象進行多次加鎖,+1,+1,重入性
  • ?

    總結

    以上是生活随笔為你收集整理的synchronized的用法的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。