JUC线程框架深度解析 — 01、JUC基础使用
JUC线程框架深度解析 — 02、线程同步锁
JUC线程框架深度解析 — 03、线程同步辅助工具类
JUC线程框架深度解析 — 04、并发集合支持类
JUC线程框架深度解析 — 05、阻塞队列
JUC线程框架深度解析 — 06、DelayQueue延迟队列
JUC线程框架深度解析 — 07、线程池
JUC线程框架深度解析 — 08、ForkJoinTask架构
一、JUC开发包简介
【 java.util.concurrent开发包 】➣ 传统线程编程模型之中为防止死锁等现象的出现(wait()、notify()、
synchronized)时往往会考虑性能、公平性、资源管理等问题,这样加重了程序开发人员的负担;
➣ Java5.0添加了一个新的java.util.concurrent开发包(简称JUC)。
利用此包进行的多线程编程将有效的减少竞争条件(race conditions)和死锁线程。
【 java.util.concurrent核心类 】
1)Executor:具有Runnable任务的执行者。
2)ExecutorService:一个线程池管理者,其实现类有多种,我会介绍一部分,我们能把Runnable,Callable提交到池中让其调度。
3)Semaphore:一个计数信号量。
4)ReentrantLock:一个可重入的互斥锁定Lock,功能类似synchronized,但要强大的多。
5)Future:是与Runnable,Callable进行交互的接口,比如一个线程执行结束后取返回的结果等,还提供了cancel终止线程。
6)BlockingQueue:阻塞队列。
7)CompletionService:ExecutorService的扩展,可以获得线程执行结果的。
8)CountDownLatch:一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待。
9)CyclicBarrier:一个同步辅助类,它允许一组线程互相等待,直到到达某个公共屏障点。
10)Future:表示异步计算的结果。
11)ScheduldExecutorService:一个ExecutorService,可安排在给定的延迟后运行或定期执行的命令。
二、TimeUnit工具类
在java.util.concurrent开发包里面提供有一个TimeUnit类, 时间单元类。该类是一个枚举类型,这也是juc开发包里面唯一的一个枚举类。
public enum TimeUnit extends Enum<TimeUnit>
这个类之中支持有:日、时、分、秒、毫秒、微妙、纳秒,这些是更加精准的控制单位