Redis分佈式鎖注意點

  • 死鎖

爲了防止死鎖,必須設置過期時間

例如:線程A拿到鎖,還沒有解鎖,程序突然掛掉,鎖一直存在,其他線程一直拿不到鎖。所以要設置過期時間

  • 加鎖跟解鎖必須是同一個線程,保證原子性

例如:線程A拿到鎖,業務還沒有處理完成,鎖已經超時被自動刪除掉了;

線程B拿到鎖,線程A解鎖的時候必須判斷值是當前線程,否則刪掉線程B的鎖。

 

可重入鎖和鎖的原子性,可以用到ThreadLocal保證當前線程的值

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章