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.


Anmelden zum Antworten