chenssy
致力打造Java精品博客站点

JAVA

【死磕Java并发】—-深入分析CAS

chenssy阅读(969)评论(0)

CAS,Compare And Swap,即比较并交换。Doug lea大神在同步组件中大量使用CAS技术鬼斧神工地实现了Java多线程的并发操作。整个AQS同步组件、Atomic原子类操作等等都是以CAS实现的,甚至ConcurrentH...

【死磕Java并发】—–J.U.C之Condition

chenssy阅读(649)评论(0)

此篇博客所有源码均来自JDK 1.8 在没有Lock之前,我们使用synchronized来控制同步,配合Object的wait()、notify()系列方法可以实现等待/通知模式。在Java SE5后,Java提供了Lock接口,相对于S...

【死磕Java并发】—–J.U.C之读写锁:ReentrantReadWriteLock

chenssy阅读(820)评论(0)

此篇博客所有源码均来自JDK 1.8 重入锁ReentrantLock是排他锁,排他锁在同一时刻仅有一个线程可以进行访问,但是在大多数场景下,大部分时间都是提供读服务,而写服务占有的时间较少。然而读服务不存在数据竞争问题,如果一个线程在读时...

【死磕Java并发】—–J.U.C之AQS:阻塞和唤醒线程

chenssy阅读(747)评论(7)

此篇博客所有源码均来自JDK 1.8 在线程获取同步状态时如果获取失败,则加入CLH同步队列,通过通过自旋的方式不断获取同步状态,但是在自旋的过程中则需要判断当前线程是否需要阻塞,其主要方法在acquireQueued(): if (sho...

【死磕Java并发】—–J.U.C之AQS:同步状态的获取与释放

chenssy阅读(1871)评论(0)

此篇博客所有源码均来自JDK 1.8 在前面提到过,AQS是构建Java同步组件的基础,我们期待它能够成为实现大部分同步需求的基础。AQS的设计模式采用的模板方法模式,子类通过继承的方式,实现它的抽象方法来管理同步状态,对于子类而言它并没有...

【死磕Java并发】—–J.U.C之AQS:CLH同步队列

chenssy阅读(2085)评论(0)

此篇博客所有源码均来自JDK 1.8 在上篇博客【死磕Java并发】—–J.U.C之AQS:AQS简介中提到了AQS内部维护着一个FIFO队列,该队列就是CLH同步队列。 CLH同步队列是一个FIFO双向队列,AQS依赖它来完成同步状态的管...

【死磕Java并发】—–J.U.C之AQS:AQS简介

chenssy阅读(1861)评论(1)

Java的内置锁一直都是备受争议的,在JDK 1.6之前,synchronized这个重量级锁其性能一直都是较为低下,虽然在1.6后,进行大量的锁优化策略(【死磕Java并发】—–深入分析synchronized的实现原理),但是与Lock...

Chenssy's Blog | 致力打造个人精品博客

联系作者读书系统