前段時間在發送短信的代碼塊上通過網上找的工具類基於Redis實現了分布式鎖的功能
對應的鏈接https://www.cnblogs.com/chywx/p/9391602.html
周末想細細看一下。
之后郁悶的是為什么java自帶的為什么在分布式的環境下就會失效。(都是自己的low逼見解)
想想:單機情況下,使用Syncronized或者lock實現鎖機制,沒啥問題,單進程多線程實現同步沒毛病
在單進程的系統中,當存在多個線程可以同時改變某個變量(可變共享變量)時,就需要對變量或代碼塊做同步,使其在修改這種變量時能夠線性執行消除並發修改變量。
戴氏分布式情況下呢,就變為了多進程多線程,而你的jvm能控制的住嗎?(也不知道為啥要說jvm)
這個時候java自帶的鎖就會實現不了並發功能了。
不過可以使用其他工具,比如Redis,天生單線程。(為啥天生,人就是這么設計的唄)
是想即使是多進程,都需要通過Redis,然而Redis天生線程安全,還有毛病么。
