Saya memiliki program yang memunculkan utas (~ 5-150) yang melakukan banyak tugas. Awalnya, saya menggunakan FixedThreadPool
karena pertanyaan serupa ini menyarankan mereka lebih cocok untuk tugas yang berumur lebih lama dan dengan pengetahuan saya yang sangat terbatas tentang multithreading, saya menganggap rata-rata umur utas (beberapa menit) " berumur panjang ".
Namun, saya baru-baru ini menambahkan kemampuan untuk menelurkan utas tambahan dan melakukannya membawa saya di atas batas utas yang saya tetapkan. Dalam hal ini, apakah lebih baik menebak dan menambah jumlah utas yang dapat saya izinkan atau beralih ke CachedThreadPool
jadi saya tidak memiliki utas yang terbuang?
Mencoba mereka berdua keluar preliminarily, ada tidak tampaknya menjadi perbedaan jadi aku cenderung untuk pergi dengan CachedThreadPool
hanya untuk menghindari sampah. Namun, apakah rentang hidup utas berarti saya harus memilih FixedThreadPool
dan hanya menangani utas yang tidak digunakan? Pertanyaan ini membuatnya tampak seperti utas ekstra itu tidak sia-sia, tetapi saya akan menghargai klarifikasi.