2012-01-11 7 views
8

Sono nuovo a questi concetti. Ma come sto andando più in profondità in threading mi sto confondendo.Che cosa è la differenza tra AutoResetEvent e Mutex

Qual è il significato di mutex, semaphore su autoresetevent.

L'unica differenza che ho appreso con gli studi è che un mutex può eseguire attraverso le operazioni di processo. Se questo è il motivo per cui non ha lo stesso metodo di Set, Reset, WaitOne.

È possibile sostituire lo AutoResetEvent con mutex e viceversa?

Si prega di risolvere questo puzzle.

+1

Si prega di leggere http://www.albahari.com/threading/ –

risposta

16

Concetto diverso: uno Mutex è un token esclusivo; solo una persona può averlo; quando lo rilasciano, qualcun altro può combatterlo. Un AutoResetEvent è un cancello che consente di attraversare esattamente una persona prima della chiusura e che è gestito da un pulsante separato dalla coda delle persone che desiderano passare. Quando passano attraverso il cancello immediatamente si chiude.

+0

Sì, ma entrambi risolvono lo stesso scopo. Ad un certo punto del tempo una sola persona ha le chiavi. –

+1

@DJ no, non lo fanno. Nessuno "ha le chiavi" per un "AutoResetEvent'; fai la coda, e poi quando il cancello si apre ti attraversi. Non si ottiene una regione di tempo quando si tiene premuto un tasto. –

+0

@D J: suggerisci di leggere gli articoli al link che ho postato. –