- Virtual Threads の概要
- Virtual Threads(Loom project)とは
- Platform Threads vs Virtual Threads - ブロッキング?
- Platform Threads の動作方式
- Virtual Threads の動作方式
- ルールとベストプラクティス
- Rule 1 - Threads を作成する
- Rule 2 - CompletableFuture を使わない
- Rule 2 - Virtual Threads を使う
- Rule 3 - Thread Pool を使わない
- Rule 3 - newThreadPerTaskExecutor を使う
- Rule 4 - 並行性のために FixedThreadPool を使わない
- Rule 4 - 並行性には Semaphore を使う
- Rule 5 - ScopedValue を使う
- Rule 6 - synchronized の代わりに ReentranceLock を使う
- Rule 7 - Structured Concurrency を行う
- Rule 8 - Virtual Threads をテストする
- Virtual Threads と Spring Boot
- Virtual Threads を使った Spring Boot MVC
- Spring Boot MVC の非同期タスク
- RestController で Virtual Threads を使う
- レガシーコードの変更
- 既存システムに Virtual Threads を適用する
2件のコメント
Jdk24では
synchronizedがもはやpinningを発生させないように修正されたので、rule 6も次のLTSあたりには不要になるでしょう。Scoped Value、Structured Concurrency はまだ「プレビュー」段階なので、Virtual Thread が本格的に実用化されるまでには、もう少し時間がかかりそうです。