【JDK源码】JDK的java.util.concurrent包结构

本文从JDK源码包中截取出concurrent包的所有类,对该包整体结构进行一个概述。
在JDK1.5之前,Java中要进行业务并发时,通常需要有程序员独立完成代码实现,当然也有一些开源的框架提供了这些功能,但是这些依然没有JDK自带的功能使用起来方便。而当针对高质量Java多线程并发程序设计时,为防止死蹦等现象的出现,比如使用java之前的wait()、notify()和synchronized等,每每需要考虑性能、死锁、公平性、资源管理以及如何避免线程安全性方面带来的危害等诸多因素,往往会采用一些较为复杂的安全策略,加重了程序员的开发负担.万幸的是,在JDK1.5出现之后,Sun大神(Doug Lea)终于为我们推出了java.util.concurrent工具包以简化并发完成。开发者们借助于此,将有效的减少竞争条件(race conditions)和死锁线程。concurrent包很好的解决了这些问题,为我们提供了更实用的并发程序模型。

JDK的java.util.concurrent包,包含两个子包atomic和locks。

java.util.concurrent.atomic

atomic包含原子类。

java.util.concurrent.locks

locks包包含锁相关的类,如lock、condition等

java.util.concurrent

concurrent包下包含一些并发工具类,如Executors、Semaphore、CountDownLatch、CyclicBarrier、BlockingQueue等。

参考资料:
java的concurrent用法详解
java.util.concurrent包源码分析
阅读jdk源码

猜你喜欢

转载自www.cnblogs.com/z00377750/p/9211255.html