Così ho preso una classe OS lo scorso semestre e abbiamo avuto un progetto di concorrenza/threading. Era un sim dell'aeroporto che atterrò degli aerei/li fece decollare nella direzione che soffiava il vento. Dovevamo farlo in Java. Così ora che le finali sono finite e sono annoiato, sto provando a farlo in C++ 11. In Java ho usato una variabile sincronizzata per il wind (0 - 360) in main e l'ho passata ai 3 thread che stavo usando. La mia domanda è: puoi farlo in C++ 11? È un lettore/scrittore di base, un thread scrive/aggiorna il vento, l'altro 2 (decollo/terra) letto.Variabili condivise in C++ 11
Ho funzionato avendo una variabile del vento globale nel mio file di implementazione "threads.cpp". Ma c'è un modo per passare una variabile a tutti i thread che voglio e tutti li tengono d'occhio? O è meglio per me usare semplicemente la variabile globale e non passare nulla? (Perché/perché no?) Stavo guardando std::ref()
ma non ha funzionato.
MODIFICA: Sto già utilizzando mutex e lock_guard. Sto solo cercando di capire come passare e mantenere una variabile aggiornata in tutti i thread. In questo momento si aggiorna solo nel thread di scrittura.
Sì, questo è esattamente quello che stavo cercando di fare! Sembra quasi che si tratti più di un dolore, ma di usare solo la variante globale. C'è qualche +/- per farlo in questo modo? – lciamp
Bene, la maggior parte delle persone considera le variabili globali come pratiche scadenti per la maggior parte del tempo. Rende il test più difficile, almeno. –