分布式鎖的理解,java自帶的鎖為什么會失效


前段時間在發送短信的代碼塊上通過網上找的工具類基於Redis實現了分布式鎖的功能

對應的鏈接https://www.cnblogs.com/chywx/p/9391602.html

周末想細細看一下。

之后郁悶的是為什么java自帶的為什么在分布式的環境下就會失效。(都是自己的low逼見解)

想想:單機情況下,使用Syncronized或者lock實現鎖機制,沒啥問題,單進程多線程實現同步沒毛病

在單進程的系統中,當存在多個線程可以同時改變某個變量(可變共享變量)時,就需要對變量或代碼塊做同步,使其在修改這種變量時能夠線性執行消除並發修改變量。

戴氏分布式情況下呢,就變為了多進程多線程,而你的jvm能控制的住嗎?(也不知道為啥要說jvm)

這個時候java自帶的鎖就會實現不了並發功能了。

不過可以使用其他工具,比如Redis,天生單線程。(為啥天生,人就是這么設計的唄)

是想即使是多進程,都需要通過Redis,然而Redis天生線程安全,還有毛病么。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM