Executors.newFixedThreadPool()
デーモンスレッドを使用したいJavaスレッドプールを作成しました。
その理由は、これはGUIアプリであり、これらのスレッドによって、ウィンドウが閉じられた後もプログラムが実行されたままになることを望まないためです。
作成するスレッドにThreadFactory
設定するカスタムを実装しました。Thread.setDaemon(true)
クラスはこれです:
import java.util.concurrent.ThreadFactory;
public class DaemonThreadFactory implements ThreadFactory{
public Thread newThread(Runnable runnable){
Thread thread = new Thread();
thread.setDaemon(true);
return thread;
}
}
何らかの理由で、キューに入れられたタスクが実行されない状態で使用するDaemonThreadFactory
と。Executors.newFixedThreadPool()
通常に戻すThreadFactory
と動作します。
私は何が間違っているのですか?