Javaにおける高スレッド並行処理とスレッドプールの実装技術
JavaのスレッドプールはExecutorフレームワークインターフェースを通じて実現されており、Executor、Executorsユーティリティクラス、ExecutorService、ThreadPoolExecutorといったコンポーネントが含まれます。
Executorsによるスレッド作成の三つの方法:
ExecutorService pool = Executors.newFixedThreadPool(5); // 固定サイズ
ExecutorService pool = Executors ...
6月25日 19:00 投稿
Spring BootアプリケーションのTomcatハングによるFeignリクエストタイムアウトの追跡と解決
プロジェクト環境
<spring-boot.version>2.3.2.RELEASE</spring-boot.version>
<spring-cloud.version>Hoxton.SR12</spring-cloud.version>
Dockerコンテナ環境で運用
問題の概要
アプリケーション内で非同期マルチスレッド処理が広く使用されています。各非同期タスク内ではデータベースクエリ、Redis参照、Feign呼び出し、RabbitMQの送受信が ...
6月6日 23:44 投稿
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 スレッドプールの仕組みと Executor フレームワークの活用
Executor フレームワークの概要
Java 5 以降、java.util.concurrent パッケージに標準搭載された Executor フレームワークは、タスクの提交と実行を分離する設計パターンを提供します。開発者は業務ロジックであるタスクを定義し、それをスレッドプールに提交するだけでよく、スレッドの生成、割り当て、ライフサイクル管理といった低レベルの処理を意識する必要がなくなり ...
5月19日 06:11 投稿