Czytałem odpowiedź na to pytanie dotyczące lotnych słowo kluczowe:Przykład C++ "bariera pamięci"
https://stackoverflow.com/a/2485177/997112
osoba mówi:
Rozwiązanie zapobiega zamianom jest użycie bariera pamięci, , która wskazuje zarówno kompilatorowi, jak i procesorowi, że brak dostępu do pamięci może zostać zmieniony w tym punkcie. Umieszczenie takich barier wokół naszego zmiennego dostępu o zmiennej wartości zapewnia, że nawet nieulotny dostęp nie zostanie zmieniony na lotny, dzięki czemu możemy napisać bezpieczny dla wątków kod .
Jednak bariery pamięci zapewniają również, że wszystkie oczekujące odczyty/zapisy są wykonane wykonane po przekroczeniu bariery, więc skutecznie daje nam to wszystko, czego potrzebujemy, co powoduje, że lotny niepotrzebny. Możemy tylko usunąć całkowicie zmienny kwalifikator.
Jak ta "bariera pamięci" została zaimplementowana w C++?
EDIT:
mógłby ktoś podać prosty przykład kodu proszę?
@HansPassant nie ma prostego przykładu bariery pamięci C++ w pytaniu, które łączyłeś z – user997112
Kto obiecał, że będzie to proste? To jest C++, to powinno być trudne. Gdyby tak nie było, to każdy mógł być programistą C++ :) Przynajmniej słowo "Memory Barrier" w tytule pytania powinno być podpowiedzią, że jest to dokładnie to samo pytanie. –