В С++ 11 есть понятие потоков. Например, он определяет новый спецификатор хранилища thread_local
и указывает, что для переменных с этим спецификатором хранилища "есть отдельный объект или ссылка на поток" [basic.stc.thread].
Что считается "потоком" для этой цели? Это только потоки, созданные с использованием стандартной библиотеки потоков (т.е. Тех, которые представлены объектами std::thread
)? Что относительно потоков, созданных другими способами (например, с помощью pthreads непосредственно в Linux)? Что делать, если я использую библиотеку, которая обеспечивает потоки пользовательского пространства - каждый из них получает свои собственные копии объектов thread_local
(я действительно не вижу, как это можно реализовать)?
Если ответ "это реализация, определяемая реализацией, которая рассматривается как поток для целей, таких как thread_local
", может ли кто-нибудь дать пример того, как это известная реализация определяет это?