并发
文章平均质量分 96
Java并发及原理
VincentWei95
这个作者很懒,什么都没留下…
展开
-
Java AQS(AbstractQueuedSynchronizer)
文章目录什么是 AQS?AQS 核心思想自定义 AQSAQS 源码分析ReentrantLock 与 AQSReentrantLock 加锁流程条件变量实现原理同步方案对比ReentrantReadWriteLock 读写锁CyclicBarrier 和 CountDownLatch什么是 AQS?AQS(AbstractQueuedSynchronizer),位于 java.util.concurrent.locks 包下的一个类,它是 jdk 1.5 提供的一套用于实现阻塞锁和一系列依赖 FIFO(原创 2022-03-23 23:34:17 · 533 阅读 · 0 评论 -
Java 线程池
根据上面线程池的继承图,我们如果需要自定义线程池时可以扩展ThreadPoolExecutor。扩展线程工厂创建类实现ThreadFactory,threadPoolExecutor.setThreadFactory(factory)。Executors 类时线程池封装工具类,提供四种线程池。1 ThreadPoolExecutor构造方法:public TheadPoolExecut...原创 2019-06-21 23:50:42 · 253 阅读 · 1 评论 -
JMM 内存并发模型及 volatile 原理
volatile 是java的一个关键字,volatile具有可见性、有序性,不具备原子性。那什么是可见性、有序性和原子性?1 原子性原子性是不可打断的操作,要么成功要么失败。// 基本数据类型的读写操作都是属于原子性// 即可以看成当一个线程执行int a = 10这句代码时其他线程是处于等待获取cpu资源的状态// 因为线程并发是通过cpu调度交替执行,并不是真正的并行执行int..................原创 2019-12-19 13:42:19 · 345 阅读 · 1 评论 -
Java synchronized 与 CAS(Compare And Swap)
文章目录线程安全性分析synchronized对象中的 mark word 对并发的支持重量级锁偏向锁轻量级锁锁膨胀CAS 原理总结线程安全性分析在系统处理过程中,最为常见的问题是多个线程对于相同资源进行访问所造成的数据处理异常问题。看下面的例子:public static int counter;public static void main(String[] args) { Thread t1 = new Thread(() -> { for (int i = 0; i <原创 2022-03-19 21:21:09 · 478 阅读 · 0 评论