2023-03-29
監(jiān)視器 代碼 線程 對(duì)象 Java
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)銷。
開(kāi)班時(shí)間:2021-04-12(深圳)
開(kāi)班盛況開(kāi)班時(shí)間:2021-05-17(北京)
開(kāi)班盛況開(kāi)班時(shí)間:2021-03-22(杭州)
開(kāi)班盛況開(kāi)班時(shí)間:2021-04-26(北京)
開(kāi)班盛況開(kāi)班時(shí)間:2021-05-10(北京)
開(kāi)班盛況開(kāi)班時(shí)間:2021-02-22(北京)
開(kāi)班盛況開(kāi)班時(shí)間:2021-07-12(北京)
預(yù)約報(bào)名開(kāi)班時(shí)間:2020-09-21(上海)
開(kāi)班盛況開(kāi)班時(shí)間:2021-07-12(北京)
預(yù)約報(bào)名開(kāi)班時(shí)間:2019-07-22(北京)
開(kāi)班盛況Copyright 2011-2023 北京千鋒互聯(lián)科技有限公司 .All Right 京ICP備12003911號(hào)-5 京公網(wǎng)安備 11010802035720號(hào)