分布式锁的实现方式
1.数据库层面
2.zooplankton
3.redis
4.单例服务还可以用synchronized关键字
数据库处理并发的问题
悲观锁和乐观锁
悲观锁:for update
乐观锁:在表中加一个版本字段
注:在实际项目中中尽量不要从数据库去处理并发的问题,因为无论是悲观锁还是乐观锁都会对数据库的性能带来一些问题,还有如果用悲观锁,在查询的时候还会出现gap锁,有可能导致死锁的出现,所以慎用数据库的锁
zooplankton
未学习
redis
java中实现redis分布式锁一共有俩种方式redission和jedis
synchronized
synchronized是一种串行化的锁,锁粒度很高,试想一下,如果两个线程同时执行秒杀方法,这两个线程操作的是不同的商品,从业务上讲应该是可以同时进行的,但是如果采用第一二种方法,这两个线程也会去争抢同一个锁,这其实是不必要的,所以synchronized锁对性能很差