<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          [面試總結(jié)篇] Synchronized 和 Lock 的區(qū)別

          共 1052字,需瀏覽 3分鐘

           ·

          2022-11-03 23:08


          1. synchronized是一個(gè)關(guān)鍵字而lock是一個(gè)接口(lock、lockInterruptibly、tryLock、unlock、newCondition)。

          2. synchronized是隱式的加鎖,lock是顯示的加鎖。

          3. synchronized可以作用在方法和代碼塊上,而lock只能作用在代碼塊上。

          synchronized 作用在靜態(tài)方法上鎖的是當(dāng)前類的class;作用在普通方法上鎖的是當(dāng)前類的對(duì)象;作用于代碼塊上鎖的是synchronized(xxx),括號(hào)里的對(duì)象 使用javap反編譯成字節(jié)碼后,鎖代碼塊時(shí),synchronized關(guān)鍵字需要有一個(gè)代碼塊進(jìn)入的點(diǎn)monitorenter,代碼塊退出和代碼塊異常的出口點(diǎn)monitorexit;鎖方法時(shí),使用ACC_SYNCHRONIZED標(biāo)識(shí)

          4. synchronized是阻塞式加鎖,而lock中的trylock支持非阻塞式加鎖。

          5. synchronized沒(méi)有超時(shí)機(jī)制,而lock中的trylcok可以支持超時(shí)機(jī)制。

          6. synchronized不可中斷,而lock中的lockInterruptibly可中斷的獲取鎖。

          ReentrantLock.lockInterruptibly允許在等待時(shí)由其它線程調(diào)用等待線程的Thread.interrupt方法來(lái)中斷等待線程的等待而直接返回,這時(shí)不用獲取鎖,而會(huì)拋出一個(gè)InterruptedException。ReentrantLock.lock方法不允許Thread.interrupt中斷,即使檢測(cè)到Thread.isInterrupted,一樣會(huì)繼續(xù)嘗試獲取鎖,失敗則繼續(xù)休眠。只是在最后獲取鎖成功后再把當(dāng)前線程置為interrupted狀態(tài),然后再中斷線程。

          7. synchronized采用的是monitor對(duì)象監(jiān)視器,lock的底層原理是AQS

          8. synchronized只有一個(gè)同步隊(duì)列和一個(gè)等待隊(duì)列,而lock有一個(gè)同步隊(duì)列,可以有多個(gè)等待隊(duì)列。

          • 同步隊(duì)列:排隊(duì)取鎖的線程所在的隊(duì)列。
          • 等待隊(duì)列:調(diào)用 wait 方法后,線程會(huì)從同步隊(duì)列轉(zhuǎn)移到等待隊(duì)列。

          9. synchronized是非公平鎖,而lock可以是公平鎖也可以是非公平鎖。

          10. synchronized用object的notify / notifyAll方法進(jìn)行喚醒,而lock用condition進(jìn)行喚醒。

          11. lock有ReadWriteLock支持并發(fā)讀。

          記得點(diǎn)「」和「在看」↓

          愛(ài)你們

          瀏覽 49
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  狠狠撸在线 | 国产swag在线播放 | 天天草天天日 | 国产性爱在线 | 国产区视频播放 |