日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

java synchronized关键字

發布時間:2025/7/14 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java synchronized关键字 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

引用其他人的一段話

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

???? 一、當兩個并發線程訪問同一個對象object中的這個synchronized(this)同步代碼塊時,一個時間內只能有一個線程得到執行。另一個線程必須等待當前線程執行完這個代碼塊以后才能執行該代碼塊。

???? 二、然而,當一個線程訪問object的一個synchronized(this)同步代碼塊時,另一個線程仍然可以訪問該object中的非synchronized(this)同步代碼塊。

???? 三、尤其關鍵的是,當一個線程訪問object的一個synchronized(this)同步代碼塊時,其他線程對object中所有其它synchronized(this)同步代碼塊的訪問將被阻塞。

???? 四、第三個例子同樣適用其它同步代碼塊。也就是說,當一個線程訪問object的一個synchronized(this)同步代碼塊時,它就獲得了這個object的對象鎖。結果,其它線程對該object對象所有同步代碼部分的訪問都被暫時阻塞。

無論synchronized關鍵字加在方法上還是對象上,他取得的鎖都是對象,而不是把一段代碼或函數當作鎖――而且同步方法很可能還會被其他線程的對象訪問。例如:

Public synchronized void method(){ //…. }

上面的代碼等同于:

public void method() { synchronized (this) // this就是實例化的所對象 { //….. } }

另外,比較常用的方式是這樣。

public void method(SomeObject so) { synchronized(so) { //….. } }

這樣我們就就可以對so這個對象加鎖。誰拿到這個鎖誰就能夠運行這個鎖控制的代碼。

轉載于:https://www.cnblogs.com/shizhongtao/p/3507364.html

總結

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

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