
并发控制
IT_Most
以项目技术问题为依据,分享创新技术,解决实际问题,诚交技术朋友!
展开
-
synchronized和CAS锁的区别【图文教程】
Compare and swap翻译过来就是【比较并替换】,比较传入的旧值是否与存放地址上的值相同,如果相同,则将新的值替换存放地址上的值;如果传入的旧值是否与存放地址上的值不相同,那么继续循环这个比较并替换操作,直到成功!详解如下:原创 2020-09-24 19:04:16 · 3006 阅读 · 1 评论 -
【并发控制】并发控制与分布式锁(redis/zookeeper)实现【图文教程】_ 第5章
最权威,最贴地气的redission分布式锁教程来了~原创 2020-10-19 21:42:56 · 251 阅读 · 1 评论 -
【并发控制】并发控制与分布式锁(redis/zookeeper)实现【图文教程】_ 第4章
redis分布式锁,看这一篇就够了~原创 2020-09-24 18:29:21 · 233 阅读 · 2 评论 -
【并发控制】并发控制与分布式锁(redis/zookeeper)实现【图文教程】_ 第3章
需求:多个线程并发执行被加了zk锁的服务A,执行服务A之前需要获取锁。 zk锁流程:(1)获取锁:在zk的/zkLock节点下创建一个名为“zk_”的临时顺序节点。判断当前临时顺序节点的顺序号是不是最小的,如果是则表示当前线程可以获取到锁了;如果当前临时顺序节点的顺序号不是最小的,那么创建一个watch并监听前一个顺序号节点(监听前一个顺序号节点的删除事件),如果前一个节点被删除了,那么唤醒当前线程,表示当前线程获取到锁了,可以执行服务A了。详解如下:原创 2020-09-22 17:48:37 · 308 阅读 · 1 评论 -
【并发控制】并发控制与分布式锁(redis/zookeeper)实现【图文教程】_ 第2章
(1)对于单实例应用而言,通过synchronized或Lock方式完全能实现并发控制,竞争到锁的线程会执行代码块,未竞争到锁的线程会被阻塞,直到竞争到锁!(2) 对于k8s、nginx代理、物理负载均衡器等代理/托管的服务集群而言,synchronized或Lock方式并不能解决并发问题,因此分布式锁就应运而生了! redis或zookeeper却是生产过程中常用的分布式锁实现。详解如下:原创 2020-09-22 17:20:05 · 263 阅读 · 1 评论 -
【并发控制】并发控制与分布式锁(redis/zookeeper)实现【图文教程】_ 第1章
库存系统的某件商品数量只有1个,假如有2个用户同时下单,那么如何控制只能有其中一个用户能下单成功呢?也就是说2个线程同时争夺一个资源,如何控制并发呢?以上测试发现在高并发情况下,是及其容易出现并发问题的,最终会导致生产事故!为了避免并发问题,可以通过多种方式来解决,如:乐观锁、同步锁、redis分布式锁和zookeeper分布式锁等!详解如下:原创 2020-09-22 12:57:07 · 272 阅读 · 0 评论