真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Java中怎么實(shí)現(xiàn)多線程同步

今天就跟大家聊聊有關(guān)Java中怎么實(shí)現(xiàn)多線程同步,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

成都創(chuàng)新互聯(lián)主營阿巴嘎網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,成都app軟件開發(fā),阿巴嘎h5微信小程序搭建,阿巴嘎網(wǎng)站營銷推廣歡迎阿巴嘎等地區(qū)企業(yè)咨詢

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

在Java程序運(yùn)行時環(huán)境中,JVM需要對兩類線程共享的數(shù)據(jù)進(jìn)行協(xié)調(diào):

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

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

這兩類數(shù)據(jù)是被所有線程共享的。(程序不需要協(xié)調(diào)保存在Java 棧當(dāng)中的數(shù)據(jù)。因?yàn)檫@些數(shù)據(jù)是屬于擁有該棧的線程所私有的。)

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

  • 詳解Java多線程開發(fā)中的數(shù)據(jù)同步

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

  • Java多線程學(xué)習(xí)總結(jié)(一)

  • Java多線程學(xué)習(xí)總結(jié)(二)

  • Java多線程的相關(guān)機(jī)制

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

類鎖實(shí)際上用對象鎖來實(shí)現(xiàn)。當(dāng)虛擬機(jī)裝載一個class文件的時候,它就會創(chuàng)建一個java.lang.Class類的實(shí)例。當(dāng)鎖住一個對象的時候,實(shí)際上鎖住的是那個類的Class對象。

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

java多線程同步不需要自己動手加鎖,對象鎖是java虛擬機(jī)內(nèi)部使用的。在java程序中,只需要使用synchronized塊或者synchronized方法就可以標(biāo)志一個監(jiān)視區(qū)域。當(dāng)每次進(jìn)入一個監(jiān)視區(qū)域時,java 虛擬機(jī)都會自動鎖上對象或者類。

看完上述內(nèi)容,你們對Java中怎么實(shí)現(xiàn)多線程同步有進(jìn)一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。


分享名稱:Java中怎么實(shí)現(xiàn)多線程同步
網(wǎng)頁鏈接:http://weahome.cn/article/jicihs.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部