淺淡鎖實現原理(純我的理解,若有錯誤請指正)

鎖分不少種,線程鎖、進程鎖、分佈式鎖...我想大抵上原理應該是同樣,是經過內存管理的。算法

被鎖上就是lock_status = 1 這時候其餘進程訪問就訪問不了,只有當lock_status = 0 的時候才能夠被其餘進程訪問,只能被一個進程訪問緩存

鎖必須被釋放,否則形成死鎖現象,一直被佔用這資源,因此也須要鎖信息須要超時過時,須要一個失效時間服務器

 

分佈式鎖怎麼實現了?不一樣的jvm內存也不同了,其實分佈式只是應用服務器,並非緩存服務器,因此須要搭建一個存儲服務器,交由存儲服務器管理jvm

即使是分佈式緩存也是把緩存數據分散在各個服務器上面,經過算法找到對應的服務器而後區值,因此同一個鎖的信息仍是在一臺服務器上,若是服務器掛了,鎖信息會丟失吧分佈式

爲了不這樣的狀況應該也有會話或者其餘的一些方式解決吧,就不太清楚了線程

 

繼續研究進程

相關文章
相關標籤/搜索