Belajar Menggunakan Thread Pool di Program Java
Pada artikel sebelumnya ,kita telah belajar membuat thread , dengan cara mewariskan (extends) Thread , atau juga memgimplementasi (implements) dengan interface Runnable . Meskipun untuk membuat satu atau dua thread , dan menjalankanya akan terasa mudah.
Namun akan menjadi masalah , ketika program aplikasi memerlukan pembuatan 10 atau 20 thread untuk menjalankan task secara bersamaan. Bahkan untuk program aplikasi multithreading , bisa saja mencapai ratusan atau ribuan thread ,yang akan dijalankan secara bersamaan. Untuk itu kita harus mengatasi masalah ini , dengan cara memisahkan pembuatan dan mengatur atau manajemen thread.
Thread Pool adalah sekumpulan thread , yang akan mengatur banyaknya thread dibuat, dari task queue(antrian) , yang selanjutnya akan mengeksekusi task sampai selesai. Pada artikel belajar java kali ini, kita akan mencoba membuat contoh 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 bisa perhatikan contoh code ,beserta penjelasanya di bawah :
Contoh Code :
Contoh Code |
Penjelasan :
Pada contoh program di atas , pertama-tama kita membuat class yang bernama Prosesor , yang mengimplementasi interface Runnable.
Selanjutnya kita deklarasikan variable id, yang akan dikembalikan nilainya , pada parameter constructor milik class Prosesor.
Lalu ,disini kita dapat 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 selesai task.
Pada class Aplikasi , seperti biasa kita akan mencoba , menjalankan programnya di method main.
Di baris code pertama , kita akan menggunakan class ExecutorService ,yang akan memuat blocking queue atau antrian task , dan juga Thread Pools.
ExecutorService disini akan berperan sebagai siklus hidup task ,yang mengatur aliran eksekusi task.
ExecutorService disini akan berperan sebagai siklus hidup task ,yang mengatur aliran eksekusi task.
Pada var referensi service ,kita mereferensikan nilai , pada method static yaitu Executors.newFixedThreadPool(2). Dimana artinya ,kita akan menentukan ukuran tetap, 2 thread yang bekerja secara bersamaan di ThreadPool.
Selanjutnya ,kita menggunakan looping for , untuk mensubmit 5 task yang dari 2 thread yang bekerja di Thread Pool.
Lalu disini kita menggunakan method .shutdown() ,untuk mematikan semua service ,yang akan mencegah program aplikasi , mengirim (submit) task baru.
Setelah itu ,kita memanggil method .awaitTermination() ,yang akan memblock , sampai semua task selesai di eksekusi , setelah permintaan shutdown , dalam rentang waktu yang telah ditentukan
Untuk memahami proses kerjanya ,kalian bisa melihat contoh gambar ilustrasinya , di bawah :
Output :
Output Hasil |
Post a Comment for "Belajar Menggunakan Thread Pool di Program Java"
Silakan berkomentar dengan baik ,jangan SPAM di komentar ini . NO BACKLINK /LINK HIDUP