Concurrency 初級

重い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 21 LTS(2023年9月)以降、広く利用可能

バーチャルスレッドはOSではなくJVMが管理する軽量スレッドです。スレッドプールのチューニングなしに何百万も作成できます。HTTPコールやデータベースクエリなどのI/Oバウンドタスクに最適です。

共有 𝕏 🦋 in