Java Concurrency : Keuntungan Multithreading – Pemanfaatan resource dengan lebih baik

Oleh : Reza Ervani

بسم الله الرحمن الرحيم

Bayangkan sebuah aplikasi yang membaca dan memproses file-file dari sistem file lokal. Anggaplah bahwa pembacaan file dari disk membutuhkan waktu 5 detik dan pemrosesannya membutuhkan 2 detik. Maka proses dua file akan membutuhkan :


5 detik membaca file A
2 detik pemrosesan file A
5 detik membaca file B
2 detik pemrosesan file B
-----------------------
14 detik total

Saat membaca file dari disk sebagian besar waktu CPU dihabiskan untuk menunutk disk guna membaca data. CPU mengalami idle dalam waktu tersebut. Dia dapat dimanfaatkan untuk melakukan hal yang lain. Dengan merubah urutan operasi, CPU dapat dimanfaatkan lebih baik. Perhatikan urutan berikut ini :


5 detik pembacaan file A
5 detik pembacaan file B + 2 detik pemrosesan file A
2 detik pemrosesan file B
-----------------------
12 detik total

CPU menunggu file pertama untuk dibaca. Kemudian dia memulai membaca file kedua. Saat file kedua sedang dibaca, CPU memproses file pertama. Ingat, saat menunggu file dibaca dari disk, CPU biasanya idle.

Secara umum, CPU dapat melakukan hal lain saat menunggu IO. Tidak harus IO disk. Dapat pula IO network, atau input dari user di mesin. Network dan disk IO biasanya lebih lambat dari pada CPU dan Memory IO.

About Reza Ervani 426 Articles
Adalah pendiri programming.rezaervani.com -

Be the first to comment

Leave a Reply

Your email address will not be published.


*


This site uses Akismet to reduce spam. Learn how your comment data is processed.