国产另类ts人妖一区二区_欧美肥老太做爰视频_快穿高h肉_国产欧美综合在线

當(dāng)前位置: 首頁(yè) / 技術(shù)干貨 / 正文
javasynchronized原理是什么

2023-03-29

監(jiān)視器 代碼 線程 對(duì)象 Java

javasynchronized原理是什么

  Java 中的 關(guān)鍵字用于實(shí)現(xiàn)多線程同步,確保線程安全。當(dāng)一個(gè)方法或代碼塊被聲明為 時(shí),只有一個(gè)線程可以訪問(wèn)該方法或代碼塊,直到該線程釋放鎖或退出同步塊為止。synchronizedsynchronized

  synchronized關(guān)鍵字的實(shí)現(xiàn)原理是基于對(duì)象的監(jiān)視器(monitor)機(jī)制。每個(gè) Java 對(duì)象都有一個(gè)與之相關(guān)聯(lián)的監(jiān)視器,每個(gè)監(jiān)視器有且僅有一個(gè)相關(guān)聯(lián)的線程。在 代碼塊中,當(dāng)一個(gè)線程請(qǐng)求執(zhí)行該代碼塊時(shí),它必須先獲得該對(duì)象的監(jiān)視器,然后才能執(zhí)行代碼塊。如果其他線程請(qǐng)求執(zhí)行相同的 代碼塊,它們將被阻塞,直到該線程釋放該對(duì)象的監(jiān)視器。synchronizedsynchronized

  當(dāng)一個(gè)線程進(jìn)入一個(gè) 代碼塊時(shí),會(huì)嘗試獲得該對(duì)象的監(jiān)視器,如果該監(jiān)視器已被另一個(gè)線程占用,則該線程將被阻塞,直到該監(jiān)視器被釋放。當(dāng)該線程完成代碼塊的執(zhí)行并退出時(shí),它將釋放該對(duì)象的監(jiān)視器,從而允許其他線程繼續(xù)訪問(wèn)該對(duì)象的 代碼塊。synchronizedsynchronized

  synchronized關(guān)鍵字的優(yōu)點(diǎn)是簡(jiǎn)單易用,并且可以有效地避免多線程并發(fā)訪問(wèn)造成的數(shù)據(jù)不一致和競(jìng)態(tài)條件問(wèn)題。缺點(diǎn)是可能會(huì)引起性能問(wèn)題,因?yàn)槊看卧L問(wèn)同步方法或代碼塊時(shí)都需要獲得鎖,而鎖的獲取和釋放會(huì)增加一定的開(kāi)銷。

好程序員公眾號(hào)

  • · 剖析行業(yè)發(fā)展趨勢(shì)
  • · 匯聚企業(yè)項(xiàng)目源碼

好程序員開(kāi)班動(dòng)態(tài)

More+
IT培訓(xùn)IT培訓(xùn)
在線咨詢
IT培訓(xùn)IT培訓(xùn)
試聽(tīng)
IT培訓(xùn)IT培訓(xùn)
入學(xué)教程
IT培訓(xùn)IT培訓(xùn)
立即報(bào)名
IT培訓(xùn)

Copyright 2011-2023 北京千鋒互聯(lián)科技有限公司 .All Right 京ICP備12003911號(hào)-5 京公網(wǎng)安備 11010802035720號(hào)