Daftar Isi:
Definisi - Apa yang dimaksud dengan Multithreading?
Multithreading adalah jenis model eksekusi yang memungkinkan banyak utas ada dalam konteks suatu proses sedemikian rupa sehingga mereka jalankan secara independen tetapi berbagi sumber daya proses mereka. Utas memelihara daftar informasi yang relevan dengan pelaksanaannya termasuk jadwal prioritas, penangan pengecualian, serangkaian register CPU, dan status tumpukan dalam ruang alamat dari proses hostingnya.
Multithreading juga dikenal sebagai threading.
Techopedia menjelaskan Multithreading
Threading dapat bermanfaat dalam sistem prosesor tunggal dengan memungkinkan utas eksekusi utama responsif terhadap input pengguna, sementara utas pekerja tambahan dapat menjalankan tugas yang sudah berjalan lama yang tidak memerlukan intervensi pengguna di latar belakang. Threading dalam sistem multiprosesor menghasilkan eksekusi thread yang benar secara bersamaan di banyak prosesor dan karenanya lebih cepat. Namun, itu membutuhkan pemrograman yang lebih hati-hati untuk menghindari perilaku tidak intuitif seperti kondisi balap, kebuntuan, dll
Sistem operasi menggunakan threading dalam dua cara:
- Pre-emptive multithreading, di mana saklar konteks dikontrol oleh sistem operasi. Pergantian konteks dapat dilakukan pada waktu yang tidak tepat, Oleh karena itu, utas prioritas tinggi dapat secara tidak langsung dihindari oleh utas prioritas rendah.
- Multithreading kooperatif, di mana pengalihan konteks dikendalikan oleh utas. Ini dapat menyebabkan masalah, seperti kebuntuan, jika utas diblokir menunggu sumber daya menjadi bebas.
Windows versi 32-dan 64-bit menggunakan multithreading pre-emptive di mana waktu prosesor yang tersedia dibagi sehingga semua utas mendapatkan irisan waktu yang sama dan dilayani dalam mode berbasis antrian. Selama pengalihan utas, konteks utas yang sebelumnya disimpan disimpan dan dimuat kembali di utas berikutnya dalam antrian. Irisan waktu sangat singkat sehingga thread yang berjalan tampaknya dijalankan secara paralel.
Definisi ini ditulis dalam konteks Arsitektur Komputer