Looking for multithreading Answers? Try Ask4KnowledgeBase
Looking for multithreading Keywords? Try Ask4Keywords

multithreadingエグゼクティブ


構文

  • ThreadPoolExecutor

  • ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueue<Runnable> workQueue)

  • ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueue<Runnable> workQueue, RejectedExecutionHandler handler)

  • ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueue<Runnable> workQueue, ThreadFactory threadFactory)

  • ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueue<Runnable> workQueue, ThreadFactory threadFactory, RejectedExecutionHandler handler)

  • Executors.callable(PrivilegedAction<?> action)

  • Executors.callable(PrivilegedExceptionAction<?> action)

  • Executors.callable(Runnable task)

  • Executors.callable(Runnable task, T result)

  • Executors.defaultThreadFactory()

  • Executors.newCachedThreadPool()

  • Executors.newCachedThreadPool(ThreadFactory threadFactory)

  • Executors.newFixedThreadPool(int nThreads)

  • Executors.newFixedThreadPool(int nThreads, ThreadFactory threadFactory)

  • Executors.newScheduledThreadPool(int corePoolSize)

  • Executors.newScheduledThreadPool(int corePoolSize, ThreadFactory threadFactory)

  • Executors.newSingleThreadExecutor()

  • Executors.newSingleThreadExecutor(ThreadFactory threadFactory)

パラメーター

パラメータ詳細
corePoolSize プールに保持するスレッドの最小数。
maximumPoolSize プール内で許可されるスレッドの最大数。
keepAliveTime スレッドの数がコアより大きい場合、コア以外のスレッド(超過アイドルスレッド)は、このパラメータによって定義された時間が新しいタスクのために終了してから終了します。
単位 keepAliveTime時間単位。
タイムアウト待機する最大時間
workQueue Executorが使用するキューのタイプ
threadFactory 新しいスレッドを作成するときに使用するファクトリ
nThreads プール内のスレッド数
エグゼクティブ基礎となる実装
仕事実行するタスク
結果返す結果
アクション実行する特権アクション
呼び出し可能な基本的なタスク

備考

以下に説明するさまざまな種類のThreadpoolsとQueueは、[oracle documentation] [1]と[Jakob Jenkov] [2]の情報と知識から得られたもので、Javaの並行性について多くのことを学ぶことができます。

さまざまなタイプのThreadPools

SingleThreadExecutor:アンバウンドキューで動作する単一のワーカースレッドを使用し、必要なときに提供されたThreadFactoryを使用して新しいスレッドを作成するExecutor。その他の同等のnewFixedThreadPool(1、threadFactory)とは異なり、返されたexecutorは、追加スレッドを使用するように再構成できないことが保証されています。

FixedThreadPool:提供されたThreadFactoryを使用して、必要に応じて新しいスレッドを作成する、固定の数のスレッドを共有の無制限キューから再利用するスレッドプール。どの時点でも、たいていのnThreadsスレッドはアクティブな処理タスクになります。すべてのスレッドがアクティブなときに追加のタスクがサブミットされると、スレッドが使用可能になるまでキュー内で待機します。シャットダウン前に実行中にエラーが発生してスレッドが終了した場合、必要に応じて後続のタスクを実行するために新しいスレッドが使用されます。プール内のスレッドは、明示的にシャットダウンするまで存在します。

CachedThreadPool:必要に応じて新しいスレッドを作成するが、以前に構築されたスレッドが利用可能な場合にそれらを再利用し、必要に応じて提供されたThreadFactoryを使用して新しいスレッドを作成するスレッドプール。

SingleThreadScheduledExecutor:指定された遅延の後に実行するコマンド、または定期的に実行するコマンドをスケジュールできるシングルスレッドエグゼキュータです。ただし、シャットダウン前の実行中に失敗したためにこの単一のスレッドが終了した場合、後続のタスクを実行するために必要に応じて新しいスレッドが使用されます)。タスクは順次実行されることが保証され、いつでもその他の同等のnewScheduledThreadPool(1、threadFactory)とは異なり、返されたexecutorは、追加スレッドを使用するように再構成できないことが保証されています。

ScheduledThreadPool:指定された遅延の後に実行するコマンド、または定期的に実行するコマンドをスケジュールできるスレッドプール。さまざまなタイプの作業キュー

エグゼクティブ 関連する例