Domanda

Mi chiedevo se sarebbe mai senso utilizzare un mutex o semaforo quando v'è un solo thread?.

Grazie per il vostro aiuto.

È stato utile?

Soluzione

I protezione filo disegno nei miei componenti perché sono componenti riutilizzabili e scalabili destinato a lavorare in qualsiasi ambiente che posso realisticamente anticipare. Molte volte sono inizialmente utilizzati in un unico ambiente thread. Spesso la portata delle espande attuazione per includere più thread. Allora io non devo inseguire le risorse per proteggere dagli scenari nuovo accesso.

Altri suggerimenti

Mutex può avere senso, dal momento che Mutex può essere utilizzata per un'ampia condivisione del sistema, invece di condivisione interna-processo di larghezza. Ad esempio, è possibile utilizzare un mutex per evitare che un'applicazione venga avviato due volte .

Questo può essere un po 'là fuori, ma diciamo che si sta scrivendo una funzione ricorsiva e si desidera ogni livello per registrare con una risorsa separata. In questo modo è possibile mantenere la responsabilità di ripulire la risorsa in un unico luogo (Il pool di risorse) .

suona come una domanda trabocchetto. Tecnicamente, sì. Un mutex denominato può essere utilizzato per sincronizzare processi multipli contenenti un singolo filo in ciascuna.

È possibile utilizzare system-wide semaphores (e anche i mutex) per fare inter-process communication.

E 'possibile segnalare da un processo a singolo thread a un altro processo single-threaded per acquire()/release()-zione su un semaforo di nome, per esempio.

Nel caso l'ambiente supporta interrupt sistema aggiunge comportamento non lineare. Semaforo può essere utilizzato al fine di sonno in thread principale fino trigger di interrupt.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top