Новый стандарт C11 обеспечивает поддержку многопоточности.
Мои вопросы немного диверсифицированы, но определенно ответят.
Я посмотрел проект C11 n1570.
В нем говорится:
поддержка нескольких потоков выполнения, включая улучшенную последовательность памяти модель, атомные объекты и локальное хранилище потоков (
<stdatomic.h>
и<threads.h>
)
Что такое Улучшенная модель секвенирования памяти? Как/Что изменяется от стандарта c99?
Вместо того, чтобы просто цитаты из стандарта, я буду признателен, если кто-то углубится в них и попытается объяснить семантику.
Как я понимаю, C11 поддерживает:
- Создание и управление потоками
- мьютекса
- Условные переменные
- Тематическое хранилище &
- Атомные объекты
Надеюсь, я ничего не пропустил?
Поскольку теперь стандартная библиотека сама предоставляет (обеспечит) все функции, необходимые для многопоточности, в будущем не понадобится POSIX и такие библиотеки (для поддержки многопоточности)?
Наконец, какие компиляторы обеспечивают поддержку вышеупомянутых функций? Есть ли какие-либо рекомендации относительно сроков, когда они будут поддерживаться?
Я помню, что для С++ 11 была ссылка на поддержку компилятора и функции, возможно, что-то подобное?