5

例外が原因でスレッドが停止すると、このスレッドはどうなりますか? スレッド プール内にある場合、新しいスレッドが生成されますか? scala の ExecutionContext で何が起こるのか興味がありますが、ExecutionContext は Java スレッド プールをラップするので、Java ユーザーも答えを知っていると思います。

たとえば、FixedThreadPool(100) をラップする ExecutionContext を作成した場合、1 つのスレッドが停止した場合、スレッド プールはそのスレッドを置き換えますか?

4

1 に答える 1

9

スレッド自体は、死んだ後に新しいスレッドを生成することはできませんが、スレッド プールはそれを置き換えることができます。たとえば、によって作成されたスレッド プールは、必要に応じてExecutors.newFixedThreadPool()デッド スレッドを置き換えます。のドキュメントからExecutors.newFixedThreadPool()

「シャットダウン前の実行中に障害が発生していずれかのスレッドが終了した場合、必要に応じて後続のタスクを実行するために新しいスレッドが代わりに使用されます。」

于 2016-06-19T17:52:54.270 に答える