executorオブジェクトは、shutdown
の後で再利用することを意図していますか?私は、executorが終了した後にshutdown
またはshutdownNow
を呼び出すと、新しいスレッドプールを作成するためにnew
を実行する必要がありますか、または以前に終了したエグゼキュータを再利用して再利用することは可能ですか?実行者は再利用を意図していますか?
更新:
私は新しいスレッド・プールを作成する必要がある場合、どのように私は、以前に停止されたことを「理解」することができますか?
など。 次
public void startPool(){
if(threadPool != null && !threadPool.isShutdown()){
return;
}
threadPool = Executors.newCachedThreadPool();
//other stuff
}
public void stopPool(){
if(threadPool != null){
threadPool.shutdown();
}
}
は動作しません。
stop
を呼び出して
start
を呼び出すと、条件によって新しいスレッドプールが作成されません。これをコード化する適切な方法は何ですか?
「... &&!threadPool.isShutdown() 'を実行すると、TPがまだ実行中(つまり_started_)の場合にのみ早く戻ります。 –
@RalfH:良い点!OP – Jim
が正常に更新され、同じスレッドから 'stop'、' start'が呼び出されましたか? –