
2022/11/27 10:00〜
Track C (#jjug_ccc_c)
Video:40min + Live:10min
バーチャルスレッド詳細 JJUG CCC 2022 Fall

概要
Java19 よりバーチャルスレッドがプレビュー API としてリリースされました。
バーチャルスレッドは既存のスレッドに比べると遥かに軽量で、
高スループットの並行アプリケーションを容易に書けるようになります。
このセッションでは仕様書、OpenJDK のコード、サンプルプログラムを通じて、
バーチャルスレッドの動作を明らかにしていこうと思います。
目標
- バーチャルスレッドの仕組みを理解する。
- バーチャルスレッドで避けたほうがよいプログラムを理解する。
- アプリケーションにどのような変更が必要なのか?あるいは変更が必要ないのかがわかるようになる。
扱わないこと
以下は本セッションの理解には欠かせないものの、扱う時間がないため、事前に学習されることをおすすめします。
- 従来のスレッドについての理解
- Fork/Join フレームワークについての理解
- poll/epoll/kqueue/wepoll によるネットワーク多重化
内容予定リスト
VirtualThread
の意義- サーバーアプリケーションの課題
- 非同期型・別API型から
Thread
への回帰 - ざっくり
VirtualThread
VirtualThread
にふれるThread.Builder
APIExecutorService
APICarrierThread
とForkJoinPool
- マウンティングとアン・マウンティング
- 停止と再開
- 既存アプリケーションの移行
VirtualThread
を使うのが適切なアプリケーションの条件- アプリケーションコードをそのまま使える条件
- PIN とは?発生の有無を診断する
- スレッドローカル実験
- JFR/JMX によるスレッドの監視
- 他APIの変更
ThreadGroup
/Thread
の変更・非互換- JEP-428 Structured Concurrency