Selamat siang.
Ada pertanyaan untuk wawancara seperti ini.
Berapa banyak cara membuat thread yang Anda ketahui? Angka 2 muncul di jawaban: create
Thread
, passing it
Runnable
, atau create an object of a descendant class
Thread
in which
run()
. Tapi saya bertanya-tanya: apakah itu dua? Jika Anda menggunakan
concurrent
, misalnya,
Executors.newFixedThreadPool(5)
saat objek thread dibuat, segera saat metode ini dijalankan, atau nanti, saat tugas muncul untuk dieksekusi (bagaimanapun juga, tugas tersebut mungkin tidak muncul). Semua metode pabrik ini mengembalikan beberapa jenis konfigurasi
ThreadPoolExecutor
, yang memiliki salah satu parameter konfigurasi.
corePoolSize
Tentang bidang ini tertulis:
corePoolSize
– jumlah utas yang harus disimpan di kumpulan,
meskipun dalam keadaan menganggur , kecuali jika
allowCoreThreadTimeOut
disetel Di sisi lain, jika tugas tidak sampai, maka kita buat 5 pekerja menganggur, mungkinkah mereka mulai dibuat saat tugas mulai berdatangan?
Secara umum, 2 atau 3 pilihan masih dapat diingat sebagai jawaban atas pertanyaan?
GO TO FULL VERSION