分布式锁的理解,java自带的锁为什么会失效

前段时间在发送短信的代码块上通过网上找的工具类基于Redis实现了分布式锁的功能

对应的链接https://www.cnblogs.com/chywx/p/9391602.html

周末想细细看一下。

之后郁闷的是为什么java自带的为什么在分布式的环境下就会失效。(都是自己的low逼见解)

想想:单机情况下,使用Syncronized或者lock实现锁机制,没啥问题,单进程多线程实现同步没毛病

在单进程的系统中,当存在多个线程可以同时改变某个变量(可变共享变量)时,就需要对变量或代码块做同步,使其在修改这种变量时能够线性执行消除并发修改变量。

戴氏分布式情况下呢,就变为了多进程多线程,而你的jvm能控制的住吗?(也不知道为啥要说jvm)

这个时候java自带的锁就会实现不了并发功能了。

不过可以使用其他工具,比如Redis,天生单线程。(为啥天生,人就是这么设计的呗)

是想即使是多进程,都需要通过Redis,然而Redis天生线程安全,还有毛病么。

posted @ 2018-08-18 19:41  陈灬大灬海  阅读(1474)  评论(0编辑  收藏  举报