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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

java同步关键字_线程同步关键字之 synchronized

發布時間:2023/12/18 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java同步关键字_线程同步关键字之 synchronized 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Java語言的關鍵字,當它用來修飾一個方法或者一個代碼塊的時候,能夠保證在同一時刻最多只有一個線程執行該段代碼。

1.什么場合使用

共享資源,在出現多個線程同時操作同一個資源的時候(一般是同一個對象),使用該關鍵字。

2.用法

1)方法定義上加synchronized關鍵字,如下

synchronized public method(){} 這是最常用的使用方法,默認鎖當前對象,理解成同一個時間 ,只有一個線程能訪問當前對象。

2)在代碼塊上使用,如下

synchronized (){

}

注:多個線程,訪問類多個實例,這樣會有多把鎖,且互不干涉。如果出現競爭資源,且

不希望出現臟讀的情況的話,可以把訪問的方法變成類級別的(static) 然后加上synchronized 或者鎖住當前類文件:

synchronized (class){

}

3.延伸

1)異步調用:同一個對象上,如果存在2個方法,方法A加了同步鎖,方法B未加,此時如果有兩個線程,線程1一個調用方法A,線程2調用方法B。

流程分析:線程1調用方法A,然后拿到了對象鎖,線程B此時可以異步調用方法B,因為方法B未有鎖。如果想同步操作,則需要在方法B加同步,因為一個對象只有一個監控鎖。這叫做異步調用

2).鎖重入

在synchronized修飾的方法里,可以直接調用synchronized修飾的方法,這是線程同步的,叫鎖重入。同理,子類synchronized修飾的方法 可以調用父類synchronized修飾的方法。說明:一個線程在持有該對象的鎖的時候依然可以重新獲取這把鎖

3).抱著鎖的線程 發生異常,會釋放鎖,遇到異常一定要處理:

(1)記錄日志繼續執行 (2)直接回滾

總結

以上是生活随笔為你收集整理的java同步关键字_线程同步关键字之 synchronized的全部內容,希望文章能夠幫你解決所遇到的問題。

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