アクター モデルに正確に従えば、アクターを中断することはできません。つまり、共有したくない場合です。これは、たとえば AtomicBoolean を使用してAkka アクターの回答をキャンセルする方法で提案されています。
ただし、一般的な答えは、アクター内で Java スレッド化イディオムを使用しようとしているということです。これは間違っています。タスクを長時間実行するのではなく、作業を小さなバッチに分割する必要があります。
Akka のドキュメント、Actor Best Practicesから:
アクターは素敵な同僚のようであるべきです。他の人に不必要に迷惑をかけることなく効率的に仕事をし、リソースを浪費しないようにします。プログラミングに翻訳すると、これはイベントを処理し、イベント駆動型の方法で応答 (または複数の要求) を生成することを意味します。アクターは、やむを得ない場合を除き、何らかの外部エンティティ (ロック、ネットワーク ソケットなど) をブロック (つまり、スレッドを占有している間、受動的に待機) すべきではありません。後者の場合は、以下を参照してください。
Scala アクターでこれを行うことはできますか? いいえ、問題は概念的な性質のものであり、フレームワークの実装とは関係がないため、同じ問題に遭遇します。
代わりに Java スレッドを使用する必要がありますか? Java スレッドのイディオムに従いたい場合は、そうです。しかし、アクターの同時実行を使用する場合は、すべてのメリットを享受するために別の思考モデルを採用する必要があります。