Bagikan melalui


Pertimbangan Multitugas

Pedoman yang disarankan adalah menggunakan sesenggukan utas, sehingga meminimalkan penggunaan sumber daya sistem. Ini meningkatkan performa. Multitugas memiliki persyaratan sumber daya dan potensi konflik yang perlu dipertimbangkan saat merancang aplikasi Anda. Persyaratan sumber daya adalah sebagai berikut:

  • Sistem menggunakan memori untuk informasi konteks yang diperlukan oleh proses dan utas. Oleh karena itu, jumlah proses dan utas yang dapat dibuat dibatasi oleh memori yang tersedia.
  • Melacak sejumlah besar utas menghabiskan waktu prosesor yang signifikan. Jika ada terlalu banyak utas, sebagian besar dari mereka tidak akan dapat membuat kemajuan yang signifikan. Jika sebagian besar utas saat ini berada dalam satu proses, utas dalam proses lain dijadwalkan lebih jarang.

Menyediakan akses bersama ke sumber daya dapat membuat konflik. Untuk menghindarinya, Anda harus menyinkronkan akses ke sumber daya bersama. Ini berlaku untuk sumber daya sistem (seperti port komunikasi), sumber daya yang dibagikan oleh beberapa proses (seperti handel file), atau sumber daya dari satu proses (seperti variabel global) yang diakses oleh beberapa utas. Kegagalan untuk menyinkronkan akses dengan benar (dalam proses yang sama atau berbeda) dapat menyebabkan masalah seperti kebuntuan dan kondisi balapan. Objek dan fungsi sinkronisasi yang dapat Anda gunakan untuk mengoordinasikan berbagi sumber daya di antara beberapa utas. Untuk informasi selengkapnya tentang sinkronisasi, lihat Menyinkronkan Eksekusi Beberapa Utas. Mengurangi jumlah utas memudahkan dan lebih efektif untuk menyinkronkan sumber daya.

Desain yang baik untuk aplikasi multithreaded adalah server alur. Dalam desain ini, Anda membuat satu utas per prosesor dan membangun antrean permintaan tempat aplikasi mempertahankan informasi konteks. Utas akan memproses semua permintaan dalam antrean sebelum memproses permintaan dalam antrean berikutnya.