最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當(dāng)前位置: 首頁 - 科技 - 知識百科 - 正文

synchronized和lock的異同

來源:懂視網(wǎng) 責(zé)編:小采 時間:2021-11-16 10:20:25
文檔

synchronized和lock的異同

1、首先synchronized是java內(nèi)置關(guān)鍵字,在jvm層面,Lock是個java類。2、synchronized無法判斷是否獲取鎖的狀態(tài),Lock可以判斷是否獲取到鎖。
推薦度:
導(dǎo)讀1、首先synchronized是java內(nèi)置關(guān)鍵字,在jvm層面,Lock是個java類。2、synchronized無法判斷是否獲取鎖的狀態(tài),Lock可以判斷是否獲取到鎖。

synchronized和lock的異同如下:

  

  1、首先synchronized是java內(nèi)置關(guān)鍵字,在jvm層面,Lock是個java類;

  

  2、synchronized無法判斷是否獲取鎖的狀態(tài),Lock可以判斷是否獲取到鎖;

  

  3、synchronized會自動釋放鎖(a 線程執(zhí)行完同步代碼會釋放鎖 ;b 線程執(zhí)行過程中發(fā)生異常會釋放鎖),Lock需在finally中手工釋放鎖(unlock()方法釋放鎖),否則容易造成線程死鎖;

  

  4、用synchronized關(guān)鍵字的兩個線程1和線程2,如果當(dāng)前線程1獲得鎖,線程2線程等待。如果線程1阻塞,線程2則會一直等待下去,而Lock鎖就不一定會等待下去,如果嘗試獲取不到鎖,線程可以不用一直等待就結(jié)束了;

  

  5、synchronized的鎖可重入、不可中斷、非公平,而Lock鎖可重入、可判斷、可公平(兩者皆可);

  

  6、Lock鎖適合大量同步的代碼的同步問題,synchronized鎖適合代碼少量的同步問題。

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

synchronized和lock的異同

1、首先synchronized是java內(nèi)置關(guān)鍵字,在jvm層面,Lock是個java類。2、synchronized無法判斷是否獲取鎖的狀態(tài),Lock可以判斷是否獲取到鎖。
推薦度:
標(biāo)簽: 區(qū)別 的區(qū)別 lock
  • 熱門焦點

最新推薦

猜你喜歡

熱門推薦

專題
Top