sostituire spin lock con segnale
Domanda
Ho un sacco di serrature di spin nel mio codice multithread e la maggior parte del tempo sono in attesa per altri thread per fare il lavoro e masticare un sacco di utilizzo della CPU in tal modo. In Linux che uso normalmente pthread_cond_wait e pthread_cond_signal per mettere in pausa un filo e sveglio quando segnalato. C'è qualcosa di simile nelle librerie Boost? Avere un rapido sguardo ho potuto trovare qualsiasi cosa.
Visual Studio 2005
Soluzione
Trovato esso, spinta loro variabili di condizione chiama: http://www.boost.org/doc/libs/1_39_0/doc/html/thread/synchronization.html#thread.synchronization.condvar_ref
Altri suggerimenti
Siete alla ricerca di un mutex o di un semaforo. La libreria Boost non ha Mutex e il supporto semaforo .
un mutex è un semaforo binario, che è semplicemente pensato come una serratura, consentendo solo un filo di passare attraverso il tuo sezione critica .
semafori può aiutare a semplificare alcune situazioni in cui un blocco (Mutex) è troppo restrittiva.