Contoh artikel ini menceritakan penggunaan antarmuka eksekutor di Java. Bagikan untuk semua orang untuk referensi Anda. Spesifiknya adalah sebagai berikut:
1. Definisi Antarmuka Eksekutor di Java
Eksekutor Antarmuka Publik {void execute (runnable commit);}
2. Buat kumpulan utas dengan metode pabrik statis di bawah eksekutor:
a) NewfixedThreadPool: Buat kumpulan benang panjang. Setelah mencapai jumlah maksimum utas, jumlah utas tidak lagi meningkat.
Jika utas berakhir karena pengecualian yang tidak diharapkan, kumpulan utas akan melengkapi utas baru.
b) NewcachedHreadpool: Buat kumpulan benang yang dapat di -cache. Ketika panjang kumpulan melebihi persyaratan pemrosesan, Anda dapat memulihkan benang idle.
c) NEWSINGETHREADPOOL: Buat eksekutor yang beracun tunggal.
d) NewsCheduledHreadpool: Buat kumpulan utas jangka panjang, dan mendukung waktu -periode dan eksekusi tugas berkala.
Mirip dengan timer. Namun, timer didasarkan pada waktu absolut, yang peka terhadap perubahan dalam jam sistem, sementara yang dijadwalkanThreadPoolExecutor hanya mendukung waktu relatif.
3. Bandingkan ringkasan aplikasi dari kelas timer
1) Timer adalah satu -satunya utas yang melakukan semua tugas pengatur waktu. Jika suatu tugas keluar dari waktu, itu akan menyebabkan waktu timertask lainnya untuk masalah secara akurat.
2) Jika timrtask membuang kelainan, timer akan memiliki perilaku yang tidak dapat diprediksi. Oleh karena itu, StorduledHreadPoolExecutor dapat sepenuhnya mengganti timer.
3) Untuk menyelesaikan siklus hidup layanan eksekusi, antarmuka ExecutorService memperluas pelaksana. Kolam utas akan mencakup 3 negara bagian: berjalan, ditutup, diakhiri.
4. Dapat dipanggil dan masa depan
Karena Runnable tidak mengembalikan nilainya dan tidak dapat dikeluarkan dari kelainan yang diperiksa, Callable adalah abstraksi yang lebih baik. (Callable <void> menunjukkan tugas tidak ada nilai pengembalian).
Masa Depan menggambarkan siklus hidup tugas, dan menyediakan metode terkait untuk mendapatkan hasil tugas, membatalkan tugas, memeriksa tugas untuk menyelesaikan atau membatalkannya.
5.ComplTingService mengintegrasikan fungsi pelaksana dan blockingqueue.
Pengambilan dan jajak pendapat dapat memblokir penyelesaian tugas.
Diharapkan bahwa artikel ini bermanfaat untuk desain program Java semua orang.