java.util.concurrent这个包里面定义了各种线程相关的集合和类,接口.抽丝剥茧之后,我对那句”把我祖传的java包传给你”有了更深的理解.这个继承树看起来非常蛋疼.
不过最后我还是剥离分解,整理得出此文.
写到一半本来想放弃来着,因为这个网站提供了大量例子
导航
- 可能是最全的java线程指南(1-1)[任务调度类_Callable系]
- 可能是最全的java线程指南(1-2)[任务调度类_Executor系]
- 可能是最全的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
参考链接:
The java.util.concurrent package defines various thread-related collections, classes, and interfaces. After peeling back the layers, I have a deeper understanding of that phrase “passing my ancestral java package to you”. This inheritance tree looks quite painful.
But in the end, I still stripped it down, decomposed it, and organized it into this article.
I wanted to give up halfway through writing, because this website provides many examples.
Navigation
- Possibly the Most Complete Java Thread Guide (1-1)[Task Scheduling Classes_Callable Series]
- Possibly the Most Complete Java Thread Guide (1-2)[Task Scheduling Classes_Executor Series]
- Possibly the Most Complete Java Thread Guide (1-3)[Task Scheduling Classes_CompletionService Series]
Members Not Introduced But Relatively Important
RejectedExecutionHandler
ThreadPoolExecutor implements this interface.
Provides a failure retry event mechanism. Reference here
ThreadFactory
This is generally created using Guava’s ThreadFactoryBuilder, rarely implemented yourself.
Exceptions
1
2
3
4
5
6
7
8
9
10
11
12
13
BrokenBarrierException
CancellationException
CompletionException
ExecutionException
RejectedExecutionException
TimeoutException
Reference Links:
- Summary of 40 Java Multithreading Questions
- [Translation][Java]Correct Way to Shut Down ExecutorService
- Java Concurrency Programming: CountDownLatch, CyclicBarrier and Semaphore
- Java Concurrency Tutorial (Oracle Official Material)
- How to Correctly Use wait, notify and notifyAll in Java – Using Producer Consumer Model as Example
- Lesson: Concurrency
- Package java.util.concurrent
- Java Concurrency Programming: Callable, Future and FutureTask
java.util.concurrentパッケージには、さまざまなスレッド関連のコレクション、クラス、インターフェースが定義されています。層を剥がした後、「私の祖先のjavaパッケージをあなたに渡す」というフレーズをより深く理解しました。この継承ツリーは非常に苦痛に見えます。
しかし、最終的には、それを分解し、整理して、この記事をまとめました。
書きながら途中で諦めようと思いましたが、このサイトが多くの例を提供しているためです。
ナビゲーション
- おそらく最も完全なjavaスレッドガイド(1-1)[タスクスケジューリングクラス_Callable系]
- おそらく最も完全なjavaスレッドガイド(1-2)[タスクスケジューリングクラス_Executor系]
- おそらく最も完全な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
参考リンク:
Пакет java.util.concurrent определяет различные коллекции, классы и интерфейсы, связанные с потоками. После снятия слоев я получил более глубокое понимание фразы “передать мой наследственный java-пакет вам”. Это дерево наследования выглядит довольно болезненно.
Но в конце концов я все же разобрал его, декомпозировал и организовал в эту статью.
Я хотел сдаться на полпути написания, потому что этот сайт предоставляет множество примеров.
Навигация
- Возможно, самое полное руководство по потокам Java (1-1)[Классы планирования задач_Серия Callable]
- Возможно, самое полное руководство по потокам Java (1-2)[Классы планирования задач_Серия Executor]
- Возможно, самое полное руководство по потокам Java (1-3)[Классы планирования задач_Серия CompletionService]
Члены, не представленные, но относительно важные
RejectedExecutionHandler
ThreadPoolExecutor реализует этот интерфейс.
Предоставляет механизм событий повторных попыток при сбое. См. здесь
ThreadFactory
Обычно создается с помощью ThreadFactoryBuilder от Guava, редко реализуется самостоятельно.
Исключения
1
2
3
4
5
6
7
8
9
10
11
12
13
BrokenBarrierException
CancellationException
CompletionException
ExecutionException
RejectedExecutionException
TimeoutException
Ссылки:
- Сводка 40 вопросов о многопоточности Java
- [Перевод][Java]Правильный способ закрытия ExecutorService
- Параллельное программирование Java: CountDownLatch, CyclicBarrier и Semaphore
- Учебник по параллелизму Java (Официальные материалы Oracle)
- Как правильно использовать wait, notify и notifyAll в Java – Используя модель производителя-потребителя в качестве примера
- Урок: Параллелизм
- Пакет java.util.concurrent
- Параллельное программирование Java: Callable, Future и FutureTask
💬 讨论 / Discussion
对这篇文章有想法?欢迎在 GitHub 上发起讨论。
Have thoughts on this post? Start a discussion on GitHub.