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

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

Java中關(guān)于鎖的面試題有哪些

這篇文章主要介紹Java中關(guān)于鎖的面試題有哪些,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

成都創(chuàng)新互聯(lián)擁有十載的建站服務(wù)經(jīng)驗(yàn),在此期間,我們發(fā)現(xiàn)較多的客戶在挑選建站服務(wù)商前都非常的猶豫。主要問(wèn)題集中:在無(wú)法預(yù)知自己的網(wǎng)站呈現(xiàn)的效果是什么樣的?也無(wú)法判斷選擇的服務(wù)商設(shè)計(jì)出來(lái)的網(wǎng)頁(yè)效果自己是否會(huì)滿意?成都創(chuàng)新互聯(lián)業(yè)務(wù)涵蓋了互聯(lián)網(wǎng)平臺(tái)網(wǎng)站建設(shè)、移動(dòng)平臺(tái)網(wǎng)站制作、網(wǎng)絡(luò)推廣、按需規(guī)劃網(wǎng)站等服務(wù)。成都創(chuàng)新互聯(lián)網(wǎng)站開(kāi)發(fā)公司本著不拘一格的網(wǎng)站視覺(jué)設(shè)計(jì)和網(wǎng)站開(kāi)發(fā)技術(shù)相結(jié)合,為企業(yè)做網(wǎng)站提供成熟的網(wǎng)站設(shè)計(jì)方案。

Java有哪些集合類

Java中的集合主要分為四類:1、List列表:有序的,可重復(fù)的;2、Queue隊(duì)列:有序,可重復(fù)的;3、Set集合:不可重復(fù);4、Map映射:無(wú)序,鍵唯一,值不唯一。

1.synchronized作用于靜態(tài)方法和非靜態(tài)方法的區(qū)別

非靜態(tài)方法:

給對(duì)象加鎖(可以理解為給這個(gè)對(duì)象的內(nèi)存上鎖,注意 只是這塊內(nèi)存,其他同類對(duì)象都會(huì)有各自的內(nèi)存鎖),這時(shí)候在其他一個(gè)以上線程中執(zhí)行該對(duì)象的這個(gè)同步方法(注意:是該對(duì)象)就會(huì)產(chǎn)生互斥

靜態(tài)方法: 相當(dāng)于在類上加鎖(*.class位于代碼區(qū),靜態(tài)方法位于靜態(tài)區(qū)域,這個(gè)類產(chǎn)生的對(duì)象公用這個(gè)靜態(tài)方法,所以這塊內(nèi)存,N個(gè)對(duì)象來(lái)競(jìng)爭(zhēng)),

這時(shí)候,只要是這個(gè)類產(chǎn)生的對(duì)象,在調(diào)用這個(gè)靜態(tài)方法時(shí)都會(huì)產(chǎn)生互斥。即該類所有的對(duì)象都共享一把鎖。

2.鎖類型有哪些

(1)樂(lè)觀鎖&悲觀鎖

(2)自旋鎖&非自旋鎖

(3)可重入鎖&不可重入鎖

(4)無(wú)鎖&輕量級(jí)鎖&偏向鎖&重量級(jí)鎖

(5)互斥鎖&共享鎖

(6)公平鎖&非公平鎖

3.線程同步的幾種方式

synchronized修飾

volatile實(shí)現(xiàn)同步(只能保證可見(jiàn)性,不能保證原子性)

使用局部變量ThreadLocal

使用原子類(AtomicInteger、AtomicBoolean……)

使用Lock

使用容器類(BlockingQueue、ConcurrentHashMap)

4.synchronized 和 lock 機(jī)制區(qū)別

synchronized 原始采用的是 CPU 悲觀鎖機(jī)制,即線程獲得的是獨(dú)占鎖。獨(dú)占鎖意味著其 他線程只能依靠阻塞來(lái)等待線程釋放鎖。

Lock 用的是樂(lè)觀鎖方式。所謂樂(lè)觀鎖就是,每次不加鎖而是假設(shè)沒(méi)有沖突而去完成某項(xiàng)操作,如果因?yàn)闆_突失敗就重試,直到成功為止。樂(lè)觀鎖實(shí)現(xiàn)的機(jī)制就是 CAS 操作(Compare and Swap)。

5.說(shuō)說(shuō)線程安全的問(wèn)題

線程安全是多線程領(lǐng)域的問(wèn)題,線程安全可以簡(jiǎn)單理解為一個(gè)方法或者一個(gè)實(shí)例可以在多線程環(huán)境中使用而不會(huì)出現(xiàn)問(wèn)題。

在 Java 多線程編程當(dāng)中,提供了多種實(shí)現(xiàn) Java 線程安全的方式:

最簡(jiǎn)單的方式,使用 Synchronization 關(guān)鍵字

使用 java.util.concurrent.atomic 包中的原子類,例如 AtomicInteger

使用 java.util.concurrent.locks 包中的鎖

使用線程安全的集合 ConcurrentHashMap

使用 volatile關(guān)鍵字,保證變量可見(jiàn)性

以上是“Java中關(guān)于鎖的面試題有哪些”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!


網(wǎng)站欄目:Java中關(guān)于鎖的面試題有哪些
文章出自:http://weahome.cn/article/jsegsp.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部