Java Concurrency APIは、ビルドするためExecutorのExecutorServiceインターフェースを提供し、いくつかの具体的な実装(ThreadPoolExecutorおよびScheduledThreadPoolExecutor)とともに出荷されます。
私はJava並行性にまったく慣れておらず、非常によく似たいくつかの質問に対する答えを見つけるのに苦労しています。これらすべての小さな質問でSOを乱雑にするのではなく、私はそれらをまとめることにしました。おそらく、それらすべてに一挙に答える方法があるからです(おそらく、ここで全体像を見ていないためです)。
Executor独自の/を実装するのが一般的な方法ExecutorServiceですか?上記の2つのコンクリーションを使用する代わりに、どのような場合にこれを行いますか?どのような場合に、2つのコンクリーションは「自家製」のものよりも好ましいですか?- すべての同時コレクションがにどのように関連しているかわかりません
Executor。たとえば、送信されたタスクをキューに入れるためThreadPoolExecutorに、たとえば、内部で使用しますか?ConcurrentLinkedQueueそれとも、あなた(API開発者)は、たとえばConcurrentLinkedQueue並列化されたrun()メソッド内で選択して使用することになっていますか?基本的に、sが内部で使用する並行コレクションはありExecutorますか、それとも非ブロッキングアルゴリズムの作成を支援するためにそれらを使用しますか? Executor(送信されたタスクを格納するために)内部で使用する同時コレクションを構成できますか?これは一般的な方法ですか?
前もって感謝します!