Perché abbiamo bisogno di mutex ed eventi in Windows? Nel senso che Windows non ha solo Mutex? Cosa si può fare con Eventi che non possono essere fatti con Mutex?Mutex ed eventi su Windows
risposta
Gli eventi consentono di bloccare i thread finché non viene trasmesso un evento (da cui il nome). Bloccare su un evento significa "Svegliami quando qualcosa è successo"; ti aspetti di essere addormentato. Gli eventi sono un meccanismo di segnalazione e forniscono supporto per ciò che non si trova sui mutex, come la possibilità di cancellare automaticamente il segnale non appena qualcuno che lo ha aspettato si è svegliato. Inoltre, l'API consente il blocco fino a uno di o tutti di diversi eventi sono segnalati.
Il mutex (Mutual Exclusion), d'altra parte, è un meccanismo di coordinamento per le risorse condivise. Pensa alla transazione. Non ti aspetti di aspettare ma vuoi accedere ad alcune risorse condivise, e solo nel caso in cui altri lo stiano già accedendo, stai bloccando.
Se si è tentato di simulare un evento utilizzando un mutex, si dovrebbe affrontare il problema che non appena si acquisisce il blocco (quando si intende "evento segnalato"), si tengono fuori tutti gli altri fino a quando non lo si rilascia serratura. Questa non è la semantica della segnalazione di un evento; potrebbe rimanere pubblicato e le "porte" rimarranno aperte per ogni thread test per l'evento, senza acquisire alcun blocco.
Mutex dedicato per la sincronizzazione dei processi. Questo è l'oggetto in modalità kernel. Eventi per la sincronizzazione multithread in un unico processo. Questo è un oggetto in modalità utente.
oggetto mutex è molto generale e pesante, d'altra mano oggetto Event è molto più leggero. Nella maggior parte delle situazioni è necessario utilizzare la sincronizzazione in modalità utente, poiché fornisce meno cicli della CPU.
Opps (mancato ... – yozhik
- 1. Implementazione Boost Mutex per Windows
- 2. Notifica eventi di sistema di Windows ed eventi personalizzati
- 3. Domanda su Eventi Windows
- 4. Node.js ed Express su Windows
- 5. Programmazione basata su Java ed eventi
- 6. Adorner ed eventi su Elemento ornato
- 7. Stesso nome mutex per un servizio Windows ed exe in Windows 7
- 8. eventi backbone.js ed el
- 9. Eventi ed elementi DOM
- 10. VB6 Attrezzi ed eventi
- 11. Javascript protocollo ed eventi
- 12. Istanze ed eventi con più direttive
- 13. Uso corretto di azioni ed eventi
- 14. Loop singolo ed eventi in Node.js
- 15. Per mutex o non per mutex?
- 16. Cross-Platform equivalente a eventi Windows
- 17. Come installare ed eseguire lessc su node.js e Windows?
- 18. Come modificare il comportamento di blocco ricorsivo di Windows Mutex?
- 19. Windows Phone 8 Accelerometro eventi
- 20. Devo smaltire un Mutex?
- 21. Registrazione eventi in C# su Windows 7/2008 Server
- 22. boost :: mutex :: ~ mutex(): Asserzione `! Pthread_mutex_destroy (& m) 'fallita
- 23. È possibile eseguire l'inizializzazione statica dei mutex in Windows?
- 24. std :: :: mutex blocco non riesce su Windows, il codice di errore 3
- 25. Portable JDK, Tomcat ed Eclipse (Windows)
- 26. Scrittura di eventi nel registro eventi di Windows utilizzando Coldfusion
- 27. Utilizzo di molte serrature mutex
- 28. Registratore eventi in Windows 10 Universal Apps
- 29. Qual è la differenza tra trigger ed eventi in backbone?
- 30. Quando accedere al registro eventi di Windows?
"è un meccanismo di coordinamento ambito per le risorse condivise. Pensare transazione" ... hai scritto [questo] (http://www.differencebetween.net/miscellaneous/difference-between-mutex-and-event/) come bene? –