Mam pytanie odnośnie #cplusplus i #programowanie wielowątkowe. Dla ustalenia uwagi załóżmy że kompilator to linuksowe g++, a wątki są z biblioteki z c++11, chociaż to pewnie żadna różnica.
Do tej pory zawsze kompilowałem programy wielowątkowe bez żadnej optymalizacji i wszystko śmigało. Dołożenie flagi -02 może zepsuć działający kod przez optymalizacje kodu, najprostszy przykład:
int a=0 ; // zmienna globalna z której wszyscy będą korzystać ... ; while(!a) {} ; ... //
@lionbest: @ponton: może nie widać z tego wpisu, ale ja rozumiem czym są zmienne atomowe, mutexy, zmienne warunkowe, teoretyczne modele synchronizacji... Pytanie dotyczyło możliwych optymalizacji przez kompilator. Np czy kompilator mógłby zwinąć coś takiego:
Do tej pory zawsze kompilowałem programy wielowątkowe bez żadnej optymalizacji i wszystko śmigało. Dołożenie flagi -02 może zepsuć działający kod przez optymalizacje kodu, najprostszy przykład:
int a=0 ; // zmienna globalna z której wszyscy będą korzystać... ; while(!a) {} ; ... //m.lock()a
std::memory_model