Javaのマルチスレッドプログラミングの基本概念

Javaのマルチスレッドプログラミングは以下の要素を含みます: スレッド: スレッドはプロセス内の軽量な実行単位で、それぞれが独自の実行パスと状態を持ちます。Javaでは、スレッドはThreadクラスを使用して表現されます。 プロセスとスレッドの関係: スレッドはプロセスに依存し、各プロセスは独自のメモリ空間とシステムリソースを持ちます。スレッドはプロセス内の実 ...

7月3日 17:34 投稿

FutureTaskのソースコード解析

ExecutorServiceを介してCallableやRunnableタスクをスレッドプールに提出し、その結果を待機またはキャンセルするためのFutureオブジェクトを取得することができます。 public interface ExecutorService extends Executor { ... <T> Future<T> submit(Callable<T> task); <T> Future<T> submit(Runnable task, T result); Future<?& ...

6月21日 01:01 投稿

Java ExecutorService のスレッドプール設定:IO密集型とCPU密集型タスクへの最適化

前提:直列実行 vs 並列実行の比較 以下のように、各メソッドが100msスリープする単純なタスクを4つ直列に実行した場合、全体の実行時間は約400msとなります。 private String executeTaskA() { try { Thread.sleep(100); } catch (InterruptedException e) { Thread.currentThread().interrupt(); } return "resultA"; } private Str ...

6月6日 18:07 投稿

Javaスレッドプール:主要クラス・インターフェースと実行フローの詳細

スレッドプールの基本概念 スレッドプールとは、スレッドの作成・破棄のオーバーヘッドを削減し、リソースを効率的に管理するための仕組みです。事前に一定数のスレッドを生成し、タスク到着時に再利用することで、システムのパフォーマンス向上を図ります。 主要なクラスとインターフェース ExecutorServiceインターフェース: スレッドプール操作の基本機能を定義 Execu ...

5月19日 04:18 投稿