0
0

More than 1 year has passed since last update.

【JavaGold】Executorフレームワーク

Last updated at Posted at 2023-07-12

概要

スレッドプール1を使用し、スレッドの作成や管理に関する詳細な実装を意識することなく、効率的なマルチスレッドの実行環境を構築することができる。

構成インタフェース

Executorフレームワークは、以下のインタフェースで構成されている。

構成

Executorインタフェース
↑(汎化)
ExecutorServiceインタフェース
↑(汎化)
ScheduledExecutorServiceインタフェース

Executorインタフェース

Executorフレームワークの中心となるインタフェースである。
execute(Runnable command)メソッドを持ち、指定されたタスクを非同期に実行する。

ExecutorServiceインタフェース

Executorインタフェースを拡張したインタフェースであり、スレッドプールの管理やタスクのスケジューリング、タスクの終了待ちなど、より高度なタスク管理機能を提供する。

以下のメソッドを持ち、戻り値を返すタスクの実行や複数のタスクの同時実行などをサポートする。

主なメソッド
  • submit()メソッド
  • invokeAll()メソッド など

ScheduledExecutorServiceインタフェース

ExecutorServiceインタフェースを拡張しており、タスクのスケジューリングに特化したメソッドを追加し、タスクのスケジューリングや実行時刻の制御が容易になる。定期的なタスクの実行や遅延実行が必要な場合に特に便利である。

主なメソッド
  • schedule()メソッド
  • scheduleAtFixedRate()メソッド
  • awaitTermination()メソッド など

ExecutorServiceインタフェースはタスクの実行時間の制御はできないが、ScheduledExecutorServiceインタフェースはタスクの実行時間や実行間隔を指定してタスクのスケジュールをすることができる。 


これらの実装を取得するのがExecutersクラスである。

  1. スレッドの無駄遣いをなくすために、あらかじめスレッドを生成して保存しておき、使い回しをする仕組みのこと。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0