C++ 11 представила стандартизованную модель памяти, но что именно это означает? И как это повлияет на программирование C++?
Эта статья (Гэвин Кларк, цитирующая Херба Саттера) говорит, что,
Модель памяти означает, что код C++ теперь имеет стандартизованную библиотеку для вызова независимо от того, кто создал компилятор и на какой платформе он работает. Там стандартный способ контролировать, как разные потоки разговаривают с памятью процессора.
"Когда вы говорите о разделении [кода] на разные ядра, которые находятся в стандарте, мы говорим о модели памяти. Мы собираемся ее оптимизировать, не нарушая следующих предположений, которые люди собираются сделать в коде", - сказал Саттер.
Ну, я могу запомнить этот и аналогичные абзацы, доступные в Интернете (так как у меня была моя собственная модель памяти с момента рождения: P), и я могу даже написать ответ на вопросы, заданные другими, но, честно говоря, я не совсем понимаю этот.
C++ программисты использовали для разработки многопоточных приложений еще раньше, поэтому как это важно, если это потоки POSIX или потоки Windows или C++ 11 потоков? Каковы преимущества? Я хочу понять детали низкого уровня.
Я также чувствую, что модель памяти C++ 11 каким-то образом связана с поддержкой многопоточности C++ 11, так как я часто вижу эти два вместе. Если да, то как именно? Почему они должны быть связаны?
Поскольку я не знаю, как работают работы с несколькими потоками и какая модель памяти в целом, пожалуйста, помогите мне понять эти понятия. :-)