可能是最全的java线程指南

Posted by Zeusro on May 9, 2019

java.util.concurrent这个包里面定义了各种线程相关的集合和类,接口.抽丝剥茧之后,我对那句”把我祖传的java包传给你”有了更深的理解.这个继承树看起来非常蛋疼. 不过最后我还是剥离分解,整理得出此文.

写到一半本来想放弃来着,因为这个网站提供了大量例子

导航

  1. 可能是最全的java线程指南(1-1)[任务调度类_Callable系]
  2. 可能是最全的java线程指南(1-2)[任务调度类_Executor系]
  3. 可能是最全的java线程指南(1-3)[任务调度类_CompletionService系]

没介绍到但比较重要的成员

RejectedExecutionHandler

ThreadPoolExecutor实现了该接口

提供了一种失败重试的事件机制.参考这里

ThreadFactory

这个一般用Guava的ThreadFactoryBuilder创建,比较少自己实现

异常

1
2
3
4
5
6
7
8
9
10
11
12
13
BrokenBarrierException	

CancellationException	

CompletionException	

ExecutionException	

RejectedExecutionException	

TimeoutException

参考链接:

  1. 40个Java多线程问题总结
  2. [翻译][Java]ExecutorService的正确关闭方法
  3. Java并发编程:CountDownLatch、CyclicBarrier和Semaphore
  4. Java并发教程(Oracle官方资料)
  5. 如何在 Java 中正确使用 wait, notify 和 notifyAll – 以生产者消费者模型为例
  6. Lesson: Concurrency
  7. Package java.util.concurrent
  8. ava并发编程:Callable、Future和FutureTask