简单地起多线程执行测试的方法,测试中出现两个很明显的问题
1,出现主键冲突(而报错)
2,从打印的日志来看,各个线程在测试的方法中存在交叉执行的情况(日志信息的交叉意味着线程的交叉执行)
测试 2,Redis锁控制下多线程并发
Redlock的Redis分布式锁为三个独立的Redis节点,无需做集群
当加入Redis分布式锁之后,可以看到,虽然是并发多线程操作,但是在执行实际的测试的方法的时候,都是独占性地执行,
从日志也能够看出来,都是一个线程执行完成之后,另一个线程才进入临界资源区。
Redlock相对安全地解决了一开始分布式锁的潜在问题,与此同时,也增加了复杂度,同时在一定程度上降低了效率。
Linux公社的RSS地址:https://www.linuxidc.com/rssFeed.aspx