Java 8でLoomなしに仮想スレッドを実現:Jactlの継続機構

Virtual Threads for a scripting language in Java 8 without Loom

Java 8でLoomなしに仮想スレッドを実現:Jactlの継続機構

JactlはJavaアプリケーション向けの組込み可能なスクリプト言語で、Java 8/11でも動作しつつ、イベントループをブロックせずに長時間実行操作を扱えるように設計されています。Java 21の仮想スレッドが登場する前、著者は例外を投げてコールスタックを継続オブジェクトのチェーンに変換する独自の継続機構を実装しました。各関数は状態を保存して例外を再スローし、操作完了後にチェーンを辿って実行を再開します。この機構は、スクリプトの状態をシリアライズしてチェックポイントや冗長化にも応用できます。JMHベンチマークでオーバーヘッドを測定しています。

例外を投げるコストは主にスタックトレースの生成にあり、スタックトレースを埋めない例外は非常に効率的です。

この日のほかの記事

2026-09-04