Ero Mutex ja Event



Mutex vs Tapahtuma

C #, on olemassa paljon erilaisia ​​ketjuttaminen synkronointi vaihtoehtoja. Kaksi laajemmin käytetty ovat muteksi ja tapahtuma. Juuri mitä tarkalleen on ero näiden kahden? Kumpi on parempi vaihtoehto?

Tapahtuma vaihtoehto voi antaa kierteet mahdollisuus estää kunnes tapahtuma lähetetään siis nimi 'tapahtuma.' Se on sama kuin laskemisesta jotain nukkumaan ja vain herääminen se, kun jotakin merkittävää tapahtuu. Tapahtumat ovat toisin mutexes koska mutexes ei ole signalointia vaihtoehtoa tai toiminto. Tapahtumat voivat poistaa signaalin kerran joku pystyi odottamaan se on herännyt. Jopa API 's voivat sallia mahdollisuus estää, kunnes yksi tai kaikki erilaisia ​​tapahtumia signaloidaan. Lisäksi, tapahtumat ovat ytimen esineitä. Ne eivät ole' kevyempää 'verrattuna mutexes. Tapahtuma on periaatteessa ydin esine, jossa on kaksi valtiota. Tavallisesti tapahtuma signaloi tulevan tapahtuman ja joskus jopa loppua I / O-operaation.

'Mutex' tarkoittaa poissulkeminen. Se on eräänlaista scoped koordinointimekanismia resursseja jaetaan. Ajattele sitä eräänlaisena tapahtuman. Näitä ei ole pakko odottaa, vaikka haluat käyttää muutamia yhteisiä resursseja (ainoastaan ​​esimerkiksi, että toiset ovat jo hakemalla sitä) estät. Mutex koostuu kahdesta tilasta, vaikka se on olemassa toteuttaa keskinäisen syrjäytymistä. Tämä on silloin, kun haluat suojata venyttää koodi, joka yleensä päivittää yhteinen resurssi osasta, jossa mutex väitetään osaa, jossa se vapautetaan. Tämä johtaa siihen, että mikään muu lanka voi kulkea osassa.

Ihmiset, jotka ovat yrittäneet jäljitellä tapahtuman avulla mutex täytyi kohdata ongelman, jossa heti, kun lukitus on hankittu tai tapahtuma oli viestittänyt, henkilö on pitää kaikki muutkin ulos asti kunnes lukko vapautuu. Tämä ei ole semantiikkaa tapahtuman signaloidaan. Tapahtuma voi jäädä lähetetty ja muoto portti on saatavilla kaikille lanka testaus, jos ei ole mitään lukkoja. Mutex sitoutunut Interprocess synkronointi on kernel-mode objekti. Tapahtumat tehty monisäikeinen synkronoinnin yhden menetelmän ovat käyttäjätilan objekti.

Mutex kohde on liian raskas ja liian yleinen. Tapahtuma esineet ovat paljon kevyempi. User-mode synkronointi käytetään useimmissa tilanteissa johtuu siitä syystä, että se antaa vähemmän suorittimen käytön. Mutex on hyvin samankaltainen kuin kriittinen jakso ja synkronointiin käytetään resurssien, jotka ovat yhteisiä. Tapahtumat on täysin erilainen funktio, koska niitä käytetään synkronoida tehtäviä tai hallinnointiin tehtävien aikataulutus joillekin ihmisille.

Tapahtumat ovat enemmän ehdon vaihteleva, toisin kuin Mutex, mikä on enemmän kuin
seurata joitakin terminologiaa, tai se voi olla perinteinen muoto Semaforin / muteksi.



Yhteenveto:

1. tapahtuma vaihtoehto voi antaa kierteet mahdollisuus estää kunnes tapahtuma lähetetään, siis nimi 'tapahtuma.'

2. tapahtuma on periaatteessa ydin esine, jolla on kaksi valtiota. Tavallisesti tapahtuma signaloi tulevan tapahtuman ja joskus jopa loppua I / O-operaation.

3. 'Mutex' tarkoittaa poissulkeminen. Se on eräänlaista scoped koordinointimekanismia resursseja jaetaan.

4. Mutex sitoutunut Interprocess synkronointi on kernel-mode objekti. Tapahtumat tehty monisäikeinen synkronoinnin yhden menetelmän ovat käyttäjätilan objekti.

5. Tapahtumat ovat enemmän ehdon muuttujan, toisin kuin Mutex, mikä on enemmän kuin