バーチャルスレッド
重いOSスレッドの代わりに、何百万もの軽量なバーチャルスレッドを作成する。
コード比較
✕ Java 8
Thread thread = new Thread(() -> {
System.out.println("hello");
});
thread.start();
thread.join();
✓ Java 21+
Thread.startVirtualThread(() -> {
IO.println("hello");
}).join();
このコードに問題がありますか? お知らせください。
モダンな方法が優れている理由
軽量
バーチャルスレッドはKBのメモリを使用し、プラットフォームスレッドはMBを使用します。
スケーラブル
何百万ものスレッドを作成可能 — プールのサイジング不要。
シンプルなモデル
非同期コードのようにスケールするブロッキングコードを書けます。
旧来のアプローチ
プラットフォームスレッド
モダンなアプローチ
バーチャルスレッド
JDKバージョン
21
難易度
初級
JDKサポート
バーチャルスレッド
利用可能
JDK 21 LTS(2023年9月)以降、広く利用可能
仕組み
バーチャルスレッドはOSではなくJVMが管理する軽量スレッドです。スレッドプールのチューニングなしに何百万も作成できます。HTTPコールやデータベースクエリなどのI/Oバウンドタスクに最適です。
関連ドキュメント