并发编程
啊狸的Java
7年java开发经验,对dubbo,spring,springmvc,springboot,springCloud,mybatis等框架使用多年,并了解部分源码,熟悉设计模式,了解jvm、多线程、nio等,对tomcat优化,mysql优化有深入了解
展开
-
CountDownLatch秒杀实现
CountDownLatch是什么? CountDownLatch是一个发令枪,并发控制器,可以阻塞线程,使一个线程等待其他线程执行完再去执行 原理: CountDownLatch是JUC包中的一员,将阻塞里的线程都封装成一个Node节点 加入到AQS队列中,使用的是一个共享锁 当调用countDownLatch.await()方法时,都会将当前线程加入到这个AQS队列中,AQS队列的作用是存放需要获取锁的线程,利用的是一个state状态 去管理锁的状态的 秒杀小例子 //使用AtomicInte原创 2021-02-04 10:50:41 · 372 阅读 · 1 评论 -
Volatile关键字的原理
Volatile关键字的原理Java内存模型的3大特性Volatile关键字的原理 Java内存模型的3大特性 Java 内存模型的3大特性分别是 : 原子性、可见性、有序性 原子性:世界上最小的单元是原子,不可再分割 比如:a=1,这个操作就是最小的单元,不可以再分割,这个就是一个原子操作 再比如:a++,等同于 a=a+1,这个操作可以拆分为3个步骤,第一步是获取变量a的值,第二步是将变量a 加 1得到结果值,第三步是将结果值赋值给a,这个这是一个非原子操作,非原子操作都是有线程安全,存在线程安全问题的原创 2021-02-01 22:42:31 · 380 阅读 · 2 评论