Saya ingin objek yang akan menelurkan daemon thread yang akan terus berjalan selama proses berlangsung. Katakanlah, hanya demi argumen, bahwa ini adalah utas dalam sistem tertanam, dan menunggu untuk menerima dan menangani perintah pada beberapa port diagnostik. Tapi, bisa jadi apa saja kok. Gagasan utamanya adalah menonton sesuatu selama jangka waktu yang lama; Itu tidak melakukan urutan tugas .
Kebijaksanaan umum Jawa mengatakan, Jangan pernah instantiate Thread
, Gunakan sebagai ExecutorService
gantinya. (Misalnya, lihat jawaban ini ) Tapi apa untungnya? Menggunakan benang kolam renang sebagai sarana untuk membuat thread lama berjalan tunggal tampaknya sia-sia. Bagaimana itu akan lebih baik daripada jika saya menulis ini?
class Foobar {
public Foobar() {
this.threadFactory = Executors.defaultThreadFactory();
...
}
public Foobar(ThreadFactory threadFactory) {
this.threadFactory = threadFactory;
...
}
public void start() {
fooThread = threadFactory.newThread(new Runnable() { ... });
fooThread.setDaemon(true);
fooThread.start();
}
...
}
Catatan: pertanyaan ini tampaknya mirip dengan pertanyaan saya, tetapi jawabannya hanya mengatakan bagaimana cara menggunakan kumpulan utas, bukan mengapa .