分布式锁的理解,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