一. 前言
并发编程是我们必备的一个技能,相关书籍也很多。但是看了好多书可能理论知识知道了很多,但是相关的知识点不知道怎么用在具体的代码中。
这个系列的每篇文章都会通过一个具体的需求来开局,然后使用常用的工具类来实现这个需求,最后总结使用过程中需要注意的一些要点。通过具体代码来学习常用的并发工具类。
二 .已完成的文章列表
一. 通过AQS实现一个自定义同步锁
【多线程实战 一】-通过AQS实现一个自定义同步锁
通过阅读你会有如下收获:
- 什么是 AQS ?
- 如何通过AQS实现一个自定义的锁?
- ReentrantLock如何实现 可重入以及公平/非公平锁?
二. 同步工具类CountDownLatch实现一个程序启动检查服务
【多线程实战 二】-同步工具类CountDownLatch实现一个程序启动检查服务
本篇文章主要介绍CountDownLatch 相关知识。通过阅读你会有如下收获:
- 什么是 CountDownLatch ?
- 如何通过CountDownLatch实现一个程序启动检查服务?
- CountDownLatch源码如何实现的?
三. 通过CyclicBarrier来优化对账程序的执行效率
【多线程实战 三】-通过CyclicBarrier来优化对账程序的执行效率
本篇文章主要介绍CyclicBarrier相关知识。通过阅读你会有如下收获:
- 什么是 CyclicBarrier ?
- 如何通过CyclicBarrier 来优化对账程序 ?
- CyclicBarrier 与CountDownLatch的区别 ?
四. 使用读写锁实现一个本地缓存
【多线程实战 四】-使用读写锁实现一个本地缓存
本篇文章主要介绍读写锁ReentrantReadWriteLock相关知识。通过阅读你会有如下收获:
- 什么是 ReentrantReadWriteLock?
- 如何通过ReentrantReadWriteLock实现一个本地缓存服务?
- ReentrantReadWriteLock简单总结
五.通过写时复制(COW)实现一个RPC框架中的路由表
【多线程实战 五】-通过COW实现一个RPC框架中的路由表
本篇文章主要介绍 写时复制(COW)相关知识。通过阅读你会有如下收获:
- 什么是 写时复制的思想?
- 如何通过CopyOnWriteArraySet来实现一个RPC框架中的路由表 ?
- Java中使用COW的工具类应该注意哪些问题 ?
六. 线程池的常见问题以及使用的注意事项
【多线程实战 六】-线程池的常见问题以及使用的注意事项
本篇文章主要介绍 线程池使用时的相关知识。通过阅读你会有如下收获:
- 为什么不建议使用Executors快捷的工具方法创建线程池?
- 不同类型的任务混用同一个线程池有什么不良后果?
- 有依赖关系的任务使用同一个线程池有什么不良后果?
- 线程池中任务的异常应该怎么处理?