Java Concurrency : Keuntungan Multithreading – Program yang Lebih Responsif

Oleh : Reza Ervani

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

Tujuan umum yang lain berpindah dari aplikasi singlethread ke aplikasi multithread adalah untuk membuat aplikasi yang lebih responsif. Bayangkan suatu aplikasi server yang mendengarkan beberapa port untuk request yang masuk. Saat request diterima, dia menangani request tersebut dan kemudian kembali mendengarkan port lain. Loop server digambarkan seperti ini :


  while(server is active){
    listen for request
    process request
  }

Jika request membutuhkan waktu lama untuk diproes, tidak akan ada klien baru yang mengirim request ke server sepanjang durasi tersebut. Hanya ketika server dalam kondisi “mendengarkan” suatu request dapat diterima.

Suatu rancangan alternatif adalah membuat thread listening melewatkan request ke thread pekerja dan lalu sesegera mungkin kembali “mendengarkan”. Thread pekerja memproses request dan mengirimkannya ke clien. Rancangannya akan tampak seperti berikut :


  while(server is active){
    listen for request
    hand request to worker thread
  }

Dengan cara ini, thread server akan kembali mendengarkan lebih cepat. Jadi lebih banyak client yang dapat mengirimkan request ke server. Karenanya server menjadi lebih responsif.

Hal serupa juga dapat berlaku pada aplikasi desktop. Jika kita mengklik sebuah tombol yang melakukan pekerjaan yang panjang, maka aplikasi seakan-akan tidak responsif untuk sesaat. Strategi yang sama dapat digunakan untuk menghindari hal seperti itu.

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.