Во-первых, не списывайте C++ 11. Работа параллелизма для новых стандартов была выполнена под зонтиком C++ 11, а затем импортирована в C11 с явной целью быть совместимой. Хотя есть некоторые синтаксические различия (например, из-за того, что обычный C не имеет шаблонов или перегрузки функций), семантически они идентичны по дизайну. Для «доказательства» этого можно проверить документы РГ14. E.г:
и ссылки в них. Больше можно найти на Open Std Website
Теперь, на вопросы:
Что Улучшенная модель последовательности памяти?
Очевидным ответом является то, что он был изменен, чтобы учитывать несколько потоков и то, как они взаимодействуют. Несколько более длинный ответ см. В разделе C++11 introduced a standardized memory model. What does it mean? And how is it going to affect C++ programming?, о котором уже упоминалось в комментариях. Для глубокого понимания ответ на stackoverflow, возможно, не подходит (даже вопрос с несколькими подзапросами!). Но, к счастью, Hans Boehm maintains a very good page with interesting links for further reading (опять же, имейте в виду, что модели памяти C11 и C++ 11 семантически идентичны)
Надеюсь, я ничего не пропустил?
Вместе с моделью памяти ваш список, похоже, охватывает дополнения к параллелизму на C11. Для других изменений: wikipedia has a list; Я не могу придумать ничего, что пропустил список Википедии.
С тех пор, как стандартная библиотека сама предоставляет (обеспечит) все функции, необходимые для многопоточности, в будущем не понадобится POSIX и такие библиотеки (для поддержки многопоточности)?
Да, им будет необходимо. Во-первых, никто не собирается переписывать весь существующий код, который использует различные существующие API-интерфейсы потоков. Во-вторых, библиотека потоков C (++) 11/скорее всего будет реализована как обертка вокруг различных библиотек собственных потоков; черт, есть даже документированный способ получить указатель на основной поток, если вам нужно что-то сделать, кроме того, что поддерживает библиотека потоков C (++). Подумайте о библиотеке потоков C (++) 11, которая больше похожа на переносимую, наименее распространенную оболочку знаменателя вокруг различных библиотек собственных потоков.
И наконец, какие компиляторы обеспечивают поддержку вышеупомянутых функций? Есть ли какие-либо рекомендации относительно сроков, когда они будут поддерживаться? Я помню, что для C++ 11 была ссылка на поддержку компилятора и функции, возможно, что-то в этом роде?
Я не видел подробного списка, похоже, не так много шума вокруг C11 по сравнению с C++ 11. Для предстоящего GCC 4.7 есть короткое уведомление: http://gcc.gnu.org/gcc-4.7/changes.html. Для поддержки параллелизма можно проверить поддержку параллелизма на странице статуса C++ 11 здесь: http://gcc.gnu.org/projects/cxx0x.html. Также есть некоторые заметки о текущем статусе и планах GCC по адресу http://gcc.gnu.org/wiki/Atomic (согласно этой странице доступен stdatomic.h). Для других компиляторов здесь есть хороший список статуса C++ 11 для разных компиляторов http://www.aristeia.com/C++11/C++11FeatureAvailability.htm. Из ссылок там можно проверить статус поддержки параллелизма и предположить, что поставщик, о котором идет речь, планирует поддерживать C11, поддержка параллелизма C11, вероятно, будет примерно на том же уровне.
См. Также: http://stackoverflow.com/questions/4938258/where-can-i-find-good-solid-documentation-for-the-c0x-synchronization-primiti – bdonlan
@bdonlan: Вопрос о c11 а не C++ 11. Оба разные. Но ссылки, которые вы указали, для C++ 11, а не c11.duh? –
Я закрываю голосование («точный дубликат»), потому что на ваш первый вопрос (о модели последовательности) уже был дан ответ. Трудно ответить на вопросы, которые содержат несколько вопросов, потому что кто-то может знать только часть вашего вопроса - поэтому их ответ никогда не может быть принят, потому что он не отвечает на весь вопрос и, возможно, никогда не будет принятого ответа. Пожалуйста, разделите свой вопрос и удалите точную дублируемую часть (или укажите, почему она отличается от вопросов, которые я связывал). – bdonlan