Toggle navigation
陈树义的博客
首页
分类
标签
关于
架构师指南
陈树义的博客
分享我的所思所想
并发包源码系列(十):并发工具类 CountDownLatch
在上篇博客中介绍了Java四大并发工具一直的CyclicBarrier,今天要介绍的CountDownLatch与CyclicBarrier有点儿相似。CyclicBarrier所描述的是“允许一组线程互相等待,直到到达某个公共屏障点,才会进行后续任务",而CountDownLatch所描
Posted by 陈树义 on 2021-06-17
并发包源码系列(九):并发工具类 CyclicBarrier
CyclicBarrier,一个同步辅助类,在API中是这么介绍的: 它允许一组线程互相等待,直到到达某个公共屏障点 (common barrier point)。在涉及一组固定大小的线程的程序中,这些线程必须不时地互相等待,此时 CyclicBarrier 很有用。因为该 barrier 在释放等
Posted by 陈树义 on 2021-06-17
并发包源码系列(八):深入分析CAS
CAS,Compare And Swap,即比较并交换。Doug lea大神在同步组件中大量使用CAS技术鬼斧神工地实现了Java多线程的并发操作。整个AQS同步组件、Atomic原子类操作等等都是以CAS实现的,甚至ConcurrentHashMap在1.8的版本中也调整为了CAS+Synchro
Posted by 陈树义 on 2021-06-17
并发包源码系列(七):Condition
转载自:http://cmsblogs.com/?p=2222在没有Lock之前,我们使用synchronized来控制同步,配合Object的wait()、notify()系列方法可以实现等待/通知模式。在Java SE5后,Java提供了Lock接口,相对于Synchronized而言,Lock
Posted by 陈树义 on 2021-06-17
并发包源码系列(六):读写锁 ReentrantReadWriteLock
重入锁ReentrantLock是排他锁,排他锁在同一时刻仅有一个线程可以进行访问,但是在大多数场景下,大部分时间都是提供读服务,而写服务占有的时间较少。然而读服务不存在数据竞争问题,如果一个线程在读时禁止其他线程读势必会导致性能降低。所以就提供了读写锁。读写锁维护着一对锁,一个读锁和一个写锁。通过
Posted by 陈树义 on 2021-06-17
并发包源码系列(五):重入锁 ReentrantLock
转载自:http://cmsblogs.com/?p=2210ReentrantLock,可重入锁,是一种递归无阻塞的同步机制。它可以等同于synchronized的使用,但是ReentrantLock提供了比synchronized更强大、灵活的锁机制,可以减少死锁发生的概率。 API介绍如下:一
Posted by 陈树义 on 2021-06-17
并发包源码系列(四):阻塞和唤醒线程
转载自:http://cmsblogs.com/?p=2205在线程获取同步状态时如果获取失败,则加入CLH同步队列,通过通过自旋的方式不断获取同步状态,但是在自旋的过程中则需要判断当前线程是否需要阻塞,其主要方法在acquireQueued():if (shouldParkAfterFailedA
Posted by 陈树义 on 2021-06-17
并发包源码系列(三):同步状态的获取与释放
转载自:http://cmsblogs.com/?p=2197在前面提到过,AQS是构建Java同步组件的基础,我们期待它能够成为实现大部分同步需求的基础。AQS的设计模式采用的模板方法模式,子类通过继承的方式,实现它的抽象方法来管理同步状态。对于子类而言它并没有太多的活要做,AQS提供了大量的模板
Posted by 陈树义 on 2021-06-17
并发包源码系列(二):CLH同步队列
转载自:http://cmsblogs.com/?p=2188在上篇提到了AQS内部维护着一个FIFO队列,该队列就是CLH同步队列。CLH同步队列是一个FIFO双向队列,AQS依赖它来完成同步状态的管理,当前线程如果获取同步状态失败时,AQS则会将当前线程已经等待状态等信息构造成一个节点(Node
Posted by 陈树义 on 2021-06-17
并发包源码系列(一):AQS简介
转载自:http://cmsblogs.com/?p=2174Java的内置锁一直都是备受争议的,在JDK 1.6之前,synchronized这个重量级锁其性能一直都是较为低下,虽然在1.6后,进行大量的锁优化策略。但是与Lock相比synchronized还是存在一些缺陷的:虽然synchron
Posted by 陈树义 on 2021-06-17
← Newer Posts
Older Posts →
FRIENDS
田小波的博客
分类
知识科普
技术管理
生活记录
读书分享
效率工具
技术知识
认知成长
技术实践
标签
性能优化
单测
事务
Spring
性能调优
Tomcat
MySQL
系统设计
稳定性建设
synchronized
并发编程
Java内存模型
思维误区
认知成长
简历
爬虫
Github
邮件
经济学
书籍推荐
年度总结
个税
排序
算法
程序员
架构师
软件工程
操作系统
阻塞队列源码系列
推送基础系列
JVM 规范系列
Prometheus 入门系列
集合源码系列
JVM 基础系列
并发集合源码系列
并发包源码系列
线程池源码系列
JVM实战
Apache Common Pool
树结构
数据结构
中年危机
教员
Redis
HBase
有赞
Chrome
技术管理
美团
建站
Kafka
法律
Prometheus
商业
哲学
时间管理
Markdown
面试
华为
Maven
区块链
源码
雷军
小米
线上问题
管理
方法论
数据库
Push
JVM
Alfred
架构设计
计算机原理
MongoDb
职业规划
运维
重构
设计模式
LOG4J
ImageMagick
计算机网络
入门教程
毛主席
Java
Canal
ElasticSearch
Linux
Shell
关于我
知