![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java并发编程
稻草人……
这个作者很懒,什么都没留下…
展开
-
队列同步器(AQS)的设计原理:
1.前言: 在Java中锁所可以分为两大类,一类是通过synchrinized关键字实现的隐式锁,一类是JUC包的锁。前者是通过JVM实现的,后者是根据队列同步器(AQS)实现的,也就是今天的主角。 在JUC包下实现了很多锁以及工具类,例如ReentrantLock、ReadWriteLock、CountDownLatch、CyclicBarrier等,均是通过队列同步器实现的,所...原创 2020-03-31 22:33:49 · 793 阅读 · 2 评论 -
CAS操作中的ABA问题,以及相应的优化:
一、并发业务场景库存业务,stock(sid, num),其中:sid为库存idnum为库存值如上图所示,两个并发的查询库存操作,同时从数据库都得到了库存是5。接下来用户发生了并发的库存扣减动作:用户1购买了3个库存,于是库存要设置为2用户2购买了2个库存,于是库存要设置为3这两个设置库存的接口并发执行,库存会先变成2,再变成3,导致数据不一致(实际卖...转载 2019-04-22 10:51:41 · 188 阅读 · 0 评论 -
生产者和消费者:
public class ProductorAndCustomer { /* * 在生产者和消费者的饭店模型中,有四个角色:1.餐馆,2.菜单,3.厨师,4.顾客 * 餐馆中包含:厨师,顾客,菜单三种角色 * */ public static void main(String[] args) { new Restaurant();...原创 2019-07-23 10:37:04 · 102 阅读 · 0 评论