EeBlog(テクニカルブログ)

第48回 マルチスレッド編ScheduledExecutorServiceインターフェース

今回のテーマは「ScheduledExecutorService」です。

前回はExecutorServiceを使用してマルチスレッドプログラムを作成しました。 今回は特定の時間に実行するプログラムを作成してみたいと思います。 そのためには、ExecutorServiceインターフェースのサブインターフェースであるScheduledExecutorServiceインターフェースを使用します。 ScheduledExecutorServiceもExecutorsクラスのファクトリメソッドを使用して取得することができます。 newScheduledThreadPoolメソッドやnewSingleThreadScheduledExecutorメソッドは一般的に使用される構成で設定されたScheduledExecutorServiceを返してくれます。

(さらに…)

第47回 マルチスレッド編ExecutorServiceインターフェース

今回のテーマは「ExecutorService」です。

前回はThreadクラスを使用してマルチスレッドプログラムを作成しましたが、Threadクラスを意識することなくマルチスレッドプログラムを作成するためのExecutorというインターフェースがあります。 非同期処理がどのように実行されるかは、Executorインターフェースの実装次第なので、その実装による拡張がなされています。 例えば、ExecutorインターフェースのサブインターフェースであるExecutorServiceインターフェースは非同期処理の結果の生成、複数のタスクの一括実行などをサポートします。 ExecutorServiceインターフェースを実装するクラスにはThreadPoolExecutorなどがあります。 ThreadPoolExecutorはスレッドをプールし、非同期処理を効率的に実行します。

(さらに…)

第46回 マルチスレッド編CallableインターフェースRunnableFutureインターフェース

今回のテーマは「CallableとRunnableFuture」です。

CallableインターフェースはRunnableインターフェース同様マルチスレッドプログラムのためのインターフェースです。 マルチスレッドプログラムを作成する場合、Runnableインターフェースを実装し、Threadクラスのstartメソッドを実行するのが一般的でしょう。 しかし、Runnableインターフェースのrunメソッドには戻り値がない、例外をスローできないなどの制限がありました。

Callableインターフェースを実装するクラスはcallメソッドを実装する必要があります。 callメソッドは任意の戻り値を指定でき、例外をスローすることができます。

(さらに…)