本文主要概要性的介绍线程的基础,为后面的章节深入介绍Java并发的知识提供基础。
- Java 并发之线程基础
- 线程状态转换
- 线程使用方式
- 基础线程机制
- 线程中断
- 线程互斥同步
- 线程之间的协作
本文主要概要性的介绍线程的基础,为后面的章节深入介绍Java并发的知识提供基础。
JUC中多数类是通过volatile和CAS来实现的,CAS本质上提供的是一种无锁方案,而Synchronized和Lock是互斥锁方案; java原子类本质上使用的是CAS,而CAS底层是通过Unsafe类实现的。所以本章将对CAS, Unsafe和原子类详解。
Semaphore底层是基于AbstractQueuedSynchronizer来实现的。Semaphore称为计数信号量,它允许n个任务同时访问某个资源,可以将信号量看做是在向外分发使用资源的许可证,只有成功获取许可证,才能使用资源。
本文对J.U.C进行知识体系解读,后续的文章还针对几乎所有的核心的类以及常用的
工具类
作了详细的解读; 如果没有时间详细阅读相关章节,可以跟着本文站在一定的高度了解JUC下包的设计和实现;同时对重要的章节提供跳转链接,您可以链接过去详读。
ForkJoinPool 是JDK 7加入的一个线程池类。Fork/Join 技术是分治算法(Divide-and-Conquer)的并行实现,它是一项可以获得良好的并行性能的简单且高效的设计技术。目的是为了帮助我们更好地利用多处理器带来的好处,使用所有可用的运算能力来提升应用的性能。