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 投稿