Belajar Memakai Thread Pool Di Agenda Java
Pada artikel sebelumnya ,kita telah mencar ilmu menciptakan thread , dengan cara mewariskan (extends) Thread , atau juga memgimplementasi (implements) dengan interface Runnable . Meskipun untuk menciptakan satu atau dua thread , dan menjalankanya akan terasa mudah.
Namun akan menjadi duduk perkara , dikala aktivitas aplikasi memerlukan pembuatan 10 atau 20 thread untuk menjalankan task secara bersamaan. Bahkan untuk aktivitas aplikasi multithreading , sanggup saja mencapai ratusan atau ribuan thread ,yang akan dijalankan secara bersamaan. Untuk itu kita harus mengatasi duduk perkara ini , dengan cara memisahkan pembuatan dan mengatur atau administrasi thread.
Thread Pool yakni sekumpulan thread , yang akan mengatur banyaknya thread dibuat, dari task queue(antrian) , yang selanjutnya akan mengeksekusi task hingga selesai. Pada artikel mencar ilmu java kali ini, kita akan mencoba menciptakan rujukan penggunaan thread pool , di bahasa pemrograman java. Selengkapnya ,berikut mari kita simak lebih lanjut :
1. Pertama buka IntelliJ IDEA ,atau Software IDE lain yang kalian gunakan , di Komputer atau Laptop kalian.
2. Kalian sanggup perhatikan rujukan code ,beserta penjelasanya di bawah :
Contoh Code :
![]() |
Contoh Code |
Penjelasan :
Pada rujukan aktivitas di atas , pertama-tama kita menciptakan class yang berjulukan Prosesor , yang mengimplementasi interface Runnable.
Selanjutnya kita deklarasikan variable id, yang akan dikembalikan nilainya , pada parameter constructor milik class Prosesor.
Lalu ,disini kita sanggup mendeklarasikan method .run() ,yang berasal dari interface Runnable.
Dimana di dalam method tersebut ,kita menjalankan handling block try catch , untuk mengeksekusi method Thread.sleep() , yang akan mendelay thread selama 5 detik , untuk jarak antara memulai dan final task.
Pada class Aplikasi , ibarat biasa kita akan mencoba , menjalankan programnya di method main.
Di baris code pertama , kita akan memakai class ExecutorService ,yang akan memuat blocking queue atau antrian task , dan juga Thread Pools.
ExecutorService disini akan berperan sebagai siklus hidup task ,yang mengatur pedoman sanksi task.
ExecutorService disini akan berperan sebagai siklus hidup task ,yang mengatur pedoman sanksi task.
Pada var referensi service ,kita mereferensikan nilai , pada method static yaitu Executors.newFixedThreadPool(2). Dimana artinya ,kita akan memilih ukuran tetap, 2 thread yang bekerja secara bersamaan di ThreadPool.
Selanjutnya ,kita memakai looping for , untuk mensubmit 5 task yang dari 2 thread yang bekerja di Thread Pool.
Lalu disini kita memakai method .shutdown() ,untuk mematikan semua service ,yang akan mencegah aktivitas aplikasi , mengirim (submit) task baru.
Setelah itu ,kita memanggil method .awaitTermination() ,yang akan memblock , hingga semua task final di sanksi , sesudah seruan shutdown , dalam rentang waktu yang telah ditentukan
Untuk memahami proses kerjanya ,kalian sanggup melihat rujukan gambar ilustrasinya , di bawah :
Output :
![]() |
Output Hasil |
EmoticonEmoticon