91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java中怎么實現多線程同步

發布時間:2021-08-10 16:14:32 來源:億速云 閱讀:152 作者:Leah 欄目:編程語言

今天就跟大家聊聊有關Java中怎么實現多線程同步,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

讓我們從JVM的角度來看看鎖這個概念:

在Java程序運行時環境中,JVM需要對兩類線程共享的數據進行協調:

1)保存在堆中的實例變量

2)保存在方法區中的類變量

這兩類數據是被所有線程共享的。(程序不需要協調保存在Java 棧當中的數據。因為這些數據是屬于擁有該棧的線程所私有的。)

在java虛擬機中,每個對象和類在邏輯上都是和一個監視器相關聯的。對于對象來說,相關聯的監視器保護對象的實例變量。對于類來說,監視器保護類的類變量。
(如果一個對象沒有實例變量,或者一個類沒有變量,相關聯的監視器就什么也不監視。)

  • 詳解Java多線程開發中的數據同步

  • 淺析Java多線程技術中所使用的方法

  • Java多線程學習總結(一)

  • Java多線程學習總結(二)

  • Java多線程的相關機制

為了實現監視器的排他性監視能力,java多線程同步虛擬機為每一個對象和類都關聯一個鎖。代表任何時候只允許一個線程擁有的特權。線程訪問實例變量或者類變量不需鎖。但是如果線程獲取了鎖,那么在它釋放這個鎖之前,就沒有其他線程可以獲取同樣數據的鎖了。(鎖住一個對象就是獲取對象相關聯的監視器)

類鎖實際上用對象鎖來實現。當虛擬機裝載一個class文件的時候,它就會創建一個java.lang.Class類的實例。當鎖住一個對象的時候,實際上鎖住的是那個類的Class對象。

一個線程可以多次對同一個對象上鎖。對于每一個對象,java虛擬機維護一個加鎖計數器,線程每獲得一次該對象,計數器就加1,每釋放一次,計數器就減 1,當計數器值為0時,鎖就被完全釋放了。

java多線程同步不需要自己動手加鎖,對象鎖是java虛擬機內部使用的。在java程序中,只需要使用synchronized塊或者synchronized方法就可以標志一個監視區域。當每次進入一個監視區域時,java 虛擬機都會自動鎖上對象或者類。

看完上述內容,你們對Java中怎么實現多線程同步有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

繁峙县| 彭山县| 晴隆县| 景东| 筠连县| 中牟县| 九台市| 巴楚县| 晋江市| 宜兰市| 许昌县| 民丰县| 屯昌县| 林周县| 饶阳县| 慈溪市| 安阳县| 来宾市| 金塔县| 福海县| 沈阳市| 建平县| 安远县| 德惠市| 阿勒泰市| 拜泉县| 左云县| 白银市| 交口县| 洛浦县| 惠州市| 葫芦岛市| 平定县| 丹江口市| 柘荣县| 民和| 图木舒克市| 贵州省| 天气| 舒城县| 福贡县|