Emma眼中的JAVA世界(一)之J.U.C包里的成员有什么?
一直想认认真真地总结一下Java基础,可惜自己一直以没有时间为借口的拖着,终于在这样一个普通的周末开始了这样的远行。该板块都是基于JDK8的源码解析,是我自己多方看书和理解的总结,不当之处还请见谅。
今天想说的是Java.util.concurrent包下面的类和接口,详细介绍。首先看看这个包下面有什么:
我如果没有数错的话,应该是58个类或者接口,如何学习成为我们的难点,我想应该先知道他们之间的关系,然后学习应该才是比较轻松的,我的目的在于知道这里面有什么,每一个怎么用,以后遇到类似情况就知道来这里找了,再看源码就知道怎么用了。
所以先介绍他们之间的关系,再逐个介绍每一个是干什么的。
主要的分成:
实现线程池的一些主要类:
Executor:
Executors:
ExecutorService
ForkJoinPool
ForkJoinTask:abstract class
ForkJoinWorkerThread
ScheduledExecutorService:interface
ScheduledFuture:interface
ThreadPoolExecutor
Callable interface
RunnableFuture:interface
RunnableScheduledFuture:interface
ThreadFactory:interface
CompletableFuture
Future
FutureTask
BlockingQueue:阻塞队列的一些实现类:
AbstractBlockingQueue :abstract class
ArrayBlockingQueue;
BlockingQueue:interface
DelayQueue:
LinkedBlockingDeque
LinkedBlockingQueue
LinkedTransferQueue
PriorityBlockingQueue
SynchronousQueue
ScheduledThreadPoolExecutor
TransferQueue:interface
抛出异常:
BrokenBarrierException
CancellationException
CompletionException
ExecutionException
RejectedExecutionException
TimeoutException
和线程相关:
返回值:
不知道:
CompletionService : interface
CompletionStage:interface
CountedCompleter:abstract class
Delayed:interface
ExecutorCompletionService
RecursiveAction:abstract class
RecursiveTask:abstract class
RejectedExecutionHandler:interface
线程安全的集合类:
ConcurrentHashMap
ConcurrentLinkedDeque
ConcurrentLinkedQueue
ConcurrentMap:interface
ConcurrentNavigableMap:interface
ConcurrentSkipListMap:
ConcurrentSkipListSet
Copy-On-Write容器:
COW,是一种用于程序设计中的优化策略,其基本思路是:从一开始大家共享同一个内容,
CopyOnWriteArrayList
CopyOnWriteArraySet:
TimeUnit相关:
CyclicBarrier
CountDownLatch
Exchanger
Phaser
Semaphore
TimeUnit
ThreadLocal实现类:
ThreadLocalRandom