Ответ 1
Во-первых, не списывайте С++ 11. Работа concurrency для новых стандартов выполнялась под зонтиком С++ 11, а затем импортировалась в C11 с явной целью быть совместимой. Хотя есть некоторые синтаксические различия (например, из-за того, что обычный C не имеет шаблонов или перегрузки функций), семантически они идентичны по дизайну. Для "доказательства" этого можно проверить документы РГ14. Например:
и ссылки в нем. Больше можно найти по адресу Открыть веб-сайт Std
Теперь, на ваши вопросы:
Что такое улучшенная модель секвенирования памяти?
Очевидным ответом является то, что он был изменен, чтобы принимать во внимание несколько потоков и как они взаимодействуют. Для получения более длинного ответа см. С++ 11 представила стандартизованную модель памяти. Что это значит? И как это повлияет на программирование на С++?, которое уже упоминалось в комментариях. Для глубокого понимания ответ на stackoverflow, возможно, не подходит (даже вопрос с несколькими подзапросами!). Но, к счастью, Ханс Бем поддерживает очень хорошую страницу с интересными ссылками для дальнейшего чтения (опять же, имейте в виду, что память C11 и С++ 11 модели семантически идентичны)
Надеюсь, я ничего не пропустил?
Вместе с моделью памяти ваш список, по-видимому, охватывает дополнения concurrency в C11. Для других изменений wikipedia имеет список; Я не могу придумать ничего, что пропустил список Википедии.
В настоящее время стандартная библиотека сама предоставляет (обеспечит) все функции, необходимые для многопоточности, в будущем не понадобится POSIX и такие библиотеки (для поддержки многопоточности)?
Да, им будет нужно. Во-первых, никто не собирается переписывать весь существующий код, который использует различные существующие API-интерфейсы потоков. Во-вторых, библиотека потоков C (++) 11/скорее всего будет реализована как обертка вокруг различных библиотек собственных потоков; черт, там даже документированный способ получить указатель на основной поток, если вам нужно что-то сделать, кроме того, что поддерживает библиотека потоков C (++). Подумайте о библиотеке потоков C (++) 11, которая больше похожа на переносимую, наименее распространенную оболочку знаменателя вокруг различных библиотек собственных потоков.
Наконец, какие компиляторы обеспечивают поддержку вышеупомянутых функций? Есть ли какие-либо рекомендации относительно сроков, когда они будут поддерживаться? Я помню, что для С++ 11 была ссылка на поддержку компилятора и функции, возможно, что-то подобное?
Я не видел подробного списка, похоже, не так много шума вокруг C11 по сравнению с С++ 11. Здесь короткое уведомление о предстоящем GCC 4.7 здесь: http://gcc.gnu.org/gcc-4.7/changes.html. Для поддержки concurrency можно проверить поддержку concurrency на странице статуса С++ 11 здесь: http://gcc.gnu.org/projects/cxx0x.html. Также есть некоторые заметки о текущем статусе и планах GCC на http://gcc.gnu.org/wiki/Atomic (согласно этой странице доступен stdatomic.h). Для других компиляторов есть хороший список статуса С++ 11 для разных компиляторов здесь http://www.aristeia.com/C++11/C++11FeatureAvailability.htm. Из ссылок там можно проверить статус поддержки concurrency, и, предположив, что поставщик, о котором идет речь, поддерживает поддержку C11, поддержка C11 concurrency, вероятно, будет примерно на том же уровне.