Perbedaan antara mutex dan acara

Perbedaan antara mutex dan acara

Acara Mutex vs

Di C#, ada banyak opsi sinkronisasi threading yang berbeda. Dua yang lebih banyak digunakan adalah mutex dan acara. Apa sebenarnya perbedaan antara keduanya? Yang mana pilihan yang lebih baik?

Opsi acara dapat memberikan utas opsi untuk memblokir sampai suatu acara disiarkan sehingga nama "acara.“Itu sama dengan menidurkan sesuatu dan hanya membangunkannya ketika sesuatu yang penting terjadi. Peristiwa tidak seperti mutex karena mutex tidak memiliki opsi atau fungsi pensinyalan. Acara dapat menghapus sinyal begitu seseorang yang bisa menunggu telah dibangunkan. Bahkan API dapat memungkinkan opsi untuk memblokir hingga satu atau semua peristiwa yang berbeda ditandai. Selain itu, acara adalah objek kernel. Mereka tidak "lebih ringan" dibandingkan dengan mutex. Suatu peristiwa pada dasarnya adalah objek kernel yang memiliki dua negara bagian. Biasanya, sebuah acara menandakan kedatangan suatu acara dan kadang -kadang bahkan akhir dari operasi I/O.

"Mutex" adalah singkatan dari Mutual Exclusion. Ini adalah bentuk mekanisme koordinasi yang tersingkir untuk sumber daya yang dibagikan. Anggap saja sebagai bentuk transaksi. Anda tidak berkewajiban untuk menunggu meskipun Anda ingin mengakses beberapa sumber daya bersama (hanya dalam contoh orang lain sudah mengaksesnya) yang Anda blokir. Mutex terdiri dari dua negara bagian meskipun ada untuk memberlakukan pengecualian timbal balik. Ini untuk ketika Anda ingin melindungi bentangan kode yang biasanya memperbarui sumber daya bersama dari bagian di mana mutex diklaim ke bagian yang akan dirilis. Ini mengarah pada fakta bahwa tidak ada utas lain yang dapat melewati bagian.

Orang -orang yang telah mencoba mensimulasikan suatu acara dengan bantuan mutex harus menghadapi masalah di mana segera setelah kunci diperoleh atau acara tersebut ditandai, orang tersebut menjaga orang lain keluar sampai kunci dilepaskan. Ini bukan semantik dari suatu peristiwa yang ditandai. Suatu peristiwa dapat tetap diposting dan bentuk gerbang akan tersedia untuk semua pengujian utas jika tidak memiliki kunci. Mutex berkomitmen untuk interproses sinkronisasi ada di objek mode kernel. Peristiwa yang dibuat untuk sinkronisasi multithreaded di bawah satu metode berada di objek mode pengguna.

Objek mutex terlalu berat dan terlalu umum. Objek acara jauh lebih ringan. Sinkronisasi mode pengguna digunakan dalam sebagian besar situasi karena alasan itu memberikan siklus CPU lebih sedikit. Mutex sangat mirip dengan bagian kritis dan digunakan untuk menyinkronkan akses ke sumber daya yang dibagikan. Acara memiliki fungsi yang sama sekali berbeda karena digunakan untuk menyinkronkan tugas atau untuk manajemen penjadwalan tugas untuk beberapa orang.

Peristiwa lebih merupakan variabel kondisi, tidak seperti mutex, yang lebih seperti a
Monitor dalam beberapa terminologi, atau bisa menjadi bentuk tradisional semaphore/mutex.

Ringkasan:

1.Opsi acara dapat memberikan utas opsi untuk memblokir sampai suatu acara disiarkan, sehingga nama "acara."

2.Suatu peristiwa pada dasarnya adalah objek kernel yang memiliki dua negara bagian. Biasanya, sebuah acara menandakan kedatangan suatu acara dan kadang -kadang bahkan akhir dari operasi I/O.

3."Mutex" adalah singkatan dari Mutual Exclusion. Ini adalah bentuk mekanisme koordinasi yang tersingkir untuk sumber daya yang dibagikan.

4.Mutex berkomitmen untuk interproses sinkronisasi ada di objek mode kernel. Peristiwa yang dibuat untuk sinkronisasi multithreaded di bawah satu metode berada di objek mode pengguna.

5.Acara lebih merupakan variabel kondisi, tidak seperti mutex, yang lebih seperti a
Monitor dalam beberapa terminologi, atau bisa menjadi bentuk tradisional semaphore/mutex.