race condition und mutex
-
hallo,
man liest ja immer wieder, dass die serielle Abarbeitung von Programmen nicht garantiert wird. Gilt das aber auch für diesen Fall:... job_queue; ... job_queue_mutex; int main() { int size = job_queue.size(); for(int i=0; i<size; i++) { ... create_thread ... } }
Die threadfunktion setz dann einen mutex, verändert job_queue und entfernt den mutex.
Nun die Frage, muss man in der main() auch mit mutex arbeiten, auch wenn es nur einen thread gibt? Wenn ich an Compiler-Optimierung denke dann bin ich mir nicht mehr so sicher.
-
Überleg dir doch ob du nicht eine fertige message_queue-Klasse verwenden kannst. Bzw. schreib dir zur Not eine. Mutexes von Hand verwenden ist fehleranfällig und wie.