分布式鎖為什么要具備可重入性?
因為我們不能準確的知道鎖內(nèi)業(yè)務邏輯的耗時,再加上根據(jù)機器當時的狀態(tài)及各種原因鎖內(nèi)業(yè)務邏輯耗時不是一成不變的固定值,所以對鎖的過期時間設置不能足夠的準確。一旦線程A的鎖在邏輯結束之前被Redis過期釋放掉了,其他線程就有可能獲得鎖就如鎖內(nèi)邏輯,此時A的邏輯還沒執(zhí)行結束,那么就存在鎖內(nèi)邏輯同時被兩個線程執(zhí)行,依舊存在線程安全問題。針對可這問題我們需要考慮一下可重入鎖。
分布式鎖為什么要具備可重入性?
因為我們不能準確的知道鎖內(nèi)業(yè)務邏輯的耗時,再加上根據(jù)機器當時的狀態(tài)及各種原因鎖內(nèi)業(yè)務邏輯耗時不是一成不變的固定值,所以對鎖的過期時間設置不能足夠的準確。一旦線程A的鎖在邏輯結束之前被Redis過期釋放掉了,其他線程就有可能獲得鎖就如鎖內(nèi)邏輯,此時A的邏輯還沒執(zhí)行結束,那么就存在鎖內(nèi)邏輯同時被兩個線程執(zhí)行,依舊存在線程安全問題。針對可這問題我們需要考慮一下可重入鎖。