Home > Jaringan Komputer, Pemrograman Java, Sistem Terdistribusi > Multithreading di Java (3)

Multithreading di Java (3)


Berpindah dari suatu aplikasi singlethreaded ke multithreaded bukan hanya memberikan keuntungan-keuntungan di atas. Jangan sekedar membangun aplikasi yang bersifat multithread-enable hanya karena kita mampu untuk itu. Kita sebaiknya mempunyai ide bagus untuk mendapatkan keuntungan yang jelas dengan melakukannya, dan harus lebih besar daripada cost yang akan dikeluarkan.

3. Biaya dari Multithreading
Berpindah dari suatu aplikasi singlethreaded ke multithreaded bukan hanya memberikan keuntungan-keuntungan di atas. Jangan sekedar membangun aplikasi yang bersifat multithread-enable hanya karena kita mampu untuk itu. Kita sebaiknya mempunyai ide bagus untuk mendapatkan keuntungan yang jelas dengan melakukannya, dan harus lebih besar daripada cost yang akan dikeluarkan. Ketika ragu-ragu, cobalah mengukur kinerja atau tingkat respon (kemampuan reaksi) dari aplikasi, tidak hanya menebak.

Rancangan Lebih Kompleks
Meskipun beberapa bagian dari suatu aplikasi multithreaded lebih sederhana daripada aplikasi singlethreaded, bagian-bagian lain bersifat lebih kompleks. Kode yang dieksekusi oleh banyak thread yang mengakses shared data memerlukan perhatian khusus. Interaksi thread adalah jauh dari selalu sederhana. Error-error yang muncul dari sinkronisasi thread yang tidak benar dapat sangat sulit dideteksi, diproduksi ulang dan dibetulkan.

Overhead dari Context Switching
Ketika CPU men-switch dari mengeksekusi satu thread ke thread lain, CPU perlu menyimpan (save) data lokal, pointer program, dan lain-lain dari thread yang sedang dieksekusi, dan kemudian memuat (load) data lokal, pointer program dan segala informasi pendukung dari thread yang berikutnya akan dieksekusi. Switch ini dinamakan “context switch”. CPU men-switch dari mengeksekusi dalam konteks dari satu thread ke mengeksekusi dalam konteks thread lain lain.

Context switching tidak mudah. Kita tidak perlu melakukan switching antar thread lebih dari yang diperlukan. Anda dapat membaca lebih lanjut mengenai context switching pada Wikipedia: http://en.wikipedia.org/wiki/Context_switch
Konsumsi Sumber Daya Meningkat
Suatu thread memerlukan beberapa sumber daya (resource) dari komputer agar dapat berjalan. Di samping waktu CPU, thread memerlukan beberapa lokasi memory untuk memelihara stack lokalnya. Thread mungkin juga meminta beberapa sumber daya di dalam sistem operasi yang diperlukan untuk mengelola thread. Cobalah membuat suatu program yang membuat 100 thread yang tidak melakukan apapun kecuali menunggu, dan lihat berapa banyak memory yang dihabiskan oleh aplikasi ketika berjalan.

  1. No comments yet.
  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: