sychronized與ReentrantLock的五大區別

類型 原始構成 使用方法 等待是否可中斷 加鎖是否公平

鎖綁定多個條件Conditionapi

synchronized 關鍵字,JVM層面(moitorenter\monitorexit) 代碼執行完後自動釋放鎖 不可中斷 非公平鎖
ReentrantLock 具體類,api層面的鎖 須要用戶手動釋放鎖,用Lock()和unlock()配合try/finally語句塊來完成 可中斷 二者均可,默認false即非公平鎖 實現分組喚醒的線程們,能夠精確喚醒,而不是像synchronized要麼隨機喚醒,要麼所有喚醒
相關文章
相關標籤/搜索