「每天一道面試題」ReentrantLock是如何實現公平鎖及可重入的?

A、B兩個線程同時執行lock()方法獲取鎖,假設A先執行獲取到鎖,此時state值加1,如果線程A在繼續執行的過程中又執行了lock()方法(根據持有鎖的線程是否是當前線程,判斷是否可重入,可重入state值加1),線程A會直接獲取鎖,同時state值加1,state的值可以簡單理解爲線程A執行lock()方法的次數;當線程B執行lock()方法獲取鎖時,會將線程B封裝成Node節點,並將其插入
相關文章
相關標籤/搜索