Mengapa Pthread_cond_wait membutuhkan mutex?
Mengapa Pthread_cond_wait membutuhkan mutex?

Video: Mengapa Pthread_cond_wait membutuhkan mutex?

Video: Mengapa Pthread_cond_wait membutuhkan mutex?
Video: Apa itu mutex di C? (pthread_mutex) 2024, Mungkin
Anonim

NS mutex digunakan untuk melindungi variabel kondisi itu sendiri. Itu sebabnya kamu membutuhkan itu terkunci di depanmu melakukan menunggu. Kemudian ketika variabel kondisi ditandai atau disiarkan, satu atau lebih utas pada daftar tunggu akan dibangunkan dan mutex akan dikunci secara ajaib lagi untuk utas itu.

Mengenai ini, apakah Pthread_cond_wait membuka kunci mutex?

NS pthread_cond_wait () fungsi memblokir utas panggilan pada variabel kondisi cond, dan membuka kunci yang terkait mutex mutex . Utas panggilan harus terkunci mutex sebelum menunggu variabel kondisi. Saat kembali dari fungsi, mutex kembali dikunci dan dimiliki oleh utas pemanggil.

Selanjutnya, pertanyaannya adalah, mengapa mutex diperlukan? Ini memastikan bahwa hanya satu utas yang mengeksekusi bagian kunci dari kode pada satu waktu, yang pada gilirannya membatasi akses ke struktur data. Ini memastikan bahwa kedua utas memiliki tampilan penuh dan tepat dari memori itu terlepas dari pengaturan ulang CPU apa pun. NS mutex adalah kebutuhan mutlak ketika melakukan pemrograman bersamaan.

Selain di atas, mengapa variabel kondisi perlu mutex?

NS mutex adalah digunakan untuk melindungi variabel kondisi diri. Itu sebabnya kamu membutuhkan itu terkunci di depanmu melakukan menunggu. Kemudian ketika variabel kondisi adalah diisyaratkan atau disiarkan ke, satu atau lebih utas di daftar tunggu akan terbangun dan mutex akan secara ajaib dikunci lagi untuk utas itu.

Mengapa kita membutuhkan variabel kondisi?

Variabel kondisi biarkan satu set utas tidur sampai menggelitik! Anda dapat menggelitik satu utas atau semua utas yang sedang tidur. Jika Anda hanya membangunkan satu utas maka sistem operasi akan memutuskan utas mana yang akan dibangunkan.

Direkomendasikan: