従来の
ThreadLocal が仮想スレッドの世界でなぜ通用しにくくなり、どのように
ScopedValue がその代替となるのかを解説します。スレッドではなく実行スコープに結び付いたコンテキストという発想。コンテキスト(ユーザー、
REQUEST_ID)の受け渡し、ネストしたスコープとそのオーバーライド、仮想スレッドとの統合(
Executors.
newVirtualThreadPerTaskExecutor())を段階的に紹介します。
ThreadLocal と
ScopedValue の比較、実践的なヒント、制約、そして
Structured Concurrency(プレビュー)についても議論します。