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

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

詳談鎖和監(jiān)視器之間的區(qū)別_Java并發(fā)-創(chuàng)新互聯(lián)

在面試中你可能遇到過(guò)這樣的問(wèn)題:鎖(lock)和監(jiān)視器(monitor)有什么區(qū)別?

成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè)的開發(fā),更需要了解用戶,從用戶角度來(lái)建設(shè)網(wǎng)站,獲得較好的用戶體驗(yàn)。創(chuàng)新互聯(lián)公司多年互聯(lián)網(wǎng)經(jīng)驗(yàn),見的多,溝通容易、能幫助客戶提出的運(yùn)營(yíng)建議。作為成都一家網(wǎng)絡(luò)公司,打造的就是網(wǎng)站建設(shè)產(chǎn)品直銷的概念。選擇創(chuàng)新互聯(lián)公司,不只是建站,我們把建站作為產(chǎn)品,不斷的更新、完善,讓每位來(lái)訪用戶感受到浩方產(chǎn)品的價(jià)值服務(wù)。

嗯,要回答這個(gè)問(wèn)題,你必須深入理解Java的多線程底層是如何工作的。

簡(jiǎn)短的答案是,鎖為實(shí)現(xiàn)監(jiān)視器提供必要的支持。詳細(xì)答案如下。

鎖(lock)

邏輯上鎖是對(duì)象內(nèi)存堆中頭部的一部分?jǐn)?shù)據(jù)。JVM中的每個(gè)對(duì)象都有一個(gè)鎖(或互斥鎖),任何程序都可以使用它來(lái)協(xié)調(diào)對(duì)對(duì)象的多線程訪問(wèn)。如果任何線程想要訪問(wèn)該對(duì)象的實(shí)例變量,那么線程必須擁有該對(duì)象的鎖(在鎖內(nèi)存區(qū)域設(shè)置一些標(biāo)志)。所有其他的線程試圖訪問(wèn)該對(duì)象的變量必須等到擁有該對(duì)象的鎖有的線程釋放鎖(改變標(biāo)記)。

一旦線程擁有一個(gè)鎖,它可以多次請(qǐng)求相同的鎖,但是在其他線程能夠使用這個(gè)對(duì)象之前必須釋放相同數(shù)量的鎖。如果一個(gè)線程請(qǐng)求一個(gè)對(duì)象的鎖三次,如果別的線程想擁有該對(duì)象的鎖,那么之前線程需要 “釋放”三次鎖。

Java中顯示鎖的使用語(yǔ)法如下:

…
private Lock bankLock = new ReentrantLock();
…
 public double getTotalBalance()
  {
   bankLock.lock();
   try
   {
     double sum = 0;

     for (double a : accounts)
      sum += a;

     return sum;
   }
   finally
   {
     bankLock.unlock();
   }
  }

網(wǎng)站名稱:詳談鎖和監(jiān)視器之間的區(qū)別_Java并發(fā)-創(chuàng)新互聯(lián)
鏈接URL:http://weahome.cn/article/djeeds.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部