Stavo leggendo su mutex, semafori e sezioni critiche. Capisco che il mutex sincronizza una risorsa in modo che solo un thread acceda in un momento in cui un semaforo consente a uno specifico numero di thread di accedere a una risorsa, ma cosa fanno le sezioni critiche ??Cosa sono le sezioni critiche nei thread
risposta
In condizioni normali, una sezione critica è una sezione di codice che deve essere eseguita in serie, vale a dire, solo un thread può eseguire quel codice in un dato momento. Normalmente lo si ottiene proteggendo il codice con un semaforo mutex.
In linguaggio di Windows, una sezione critica è una struttura di dati (e alcune funzioni associate) che implementano in un semaforo mutex specifico del processo (cioè, utilizzato solo per il blocco tra thread in un singolo processo, non tra processi separati).
Esistono due varietà di semafori. Un semaforo mutex consente l'esecuzione di un solo thread alla volta. Un semaforo contato consente di specificare il numero massimo di thread che possono essere eseguiti simultaneamente. I semafori mutex sono la varietà più comune, ma i semafori contati hanno sicuramente anche degli usi.
Grazie che ha senso – Rajeshwar
È un "semiforo mutex" la stessa cosa di un "semaforo binario" (c'è una domanda [SO: Relativo] (http://stackoverflow.com/questions/62814/difference-between-binary-semaphore -e-mutex))? La terminologia può confondere a volte. –
No, i due non sono proprio gli stessi. Un mutex bloccato può essere sbloccato solo da chiunque abbia precedentemente bloccato. Un semaforo binario bloccato può essere sbloccato da chiunque. –
- 1. Quali sono le sezioni critiche di gcc on linux alle sezioni critiche di Microsoft?
- 2. Sezioni critiche con processori multicore
- 3. Porting di thread su Windows. Le sezioni critiche sono molto lente
- 4. Differenza tra blocchi, mutex e sezioni critiche
- 5. sincronizzazione: thread eseguono due sezioni critiche stesso ordine
- 6. Sezioni critiche e valori restituiti in C++
- 7. Blocco lettura/scrittura Win32 utilizzando solo sezioni critiche
- 8. Sezioni critiche che perdono memoria su Vista/Win2008?
- 9. Cosa sono i thread (cos'è un thread)?
- 10. Per che cosa sono le cartelle "risorse" nei progetti SBT?
- 11. Le sezioni TableView diventano nascoste dopo le ricariche Sezioni
- 12. Cosa sono "tag" e "id" nei layout?
- 13. Cosa sono le "astrazioni"?
- 14. Domanda dati fetchedresultscontroller di base: a cosa servono le "sezioni"?
- 15. I puntatori sono privati nelle sezioni parallele di OpenMP?
- 16. Cosa sono le citazioni F #?
- 17. Cosa sono le tipizzazioni dattiloscritte?
- 18. Cosa sono "% 1" e "% 2" nei file batch?
- 19. Come rilevare la funzione di sfondo chiamata in funzioni critiche
- 20. Cosa sono quei thread java che iniziano con "pool"?
- 21. Cosa sono le "dimensioni sintetiche" in Blaze?
- 22. Che cosa sono le DLL native?
- 23. Cosa sono le viste in MySQL?
- 24. Cosa sono esattamente le stringhe in Nim?
- 25. Che cosa sono le "opzioni" in Backbone.js?
- 26. Cosa sono le proiezioni linguistiche WinRT?
- 27. Cosa sono le sessioni di cucina?
- 28. Cosa sono le istruzioni "è" in D?
- 29. Cosa significa "*" nei CSS?
- 30. twisted + gtk: dovrei eseguire le cose della GUI nei thread o nel thread del reattore?
Stai parlando di Windows o in generale? –
Leggi questo - http://en.wikipedia.org/wiki/Critical_section, e poi torna con una domanda più specifica se ancora non ha senso. –
Mi sembra di leggere che l'articolo di wikipedia che i semafori e le sezioni critiche sono gli stessi? – Rajeshwar