внутренне с потоком будет связана некоторая структура, в которой хранятся данные потока.это для любой ОС.
Что делает CreateThread (или любая аналоговая функция)?сначала он создает и инициализирует эту структуру, а затем помещает ее в некоторую внутреннюю базу данных планировщика.
затем планировщик (на произвольном ядре) извлекает структуру потока из этой базы данных и начинает выполнять ее код.
очевидно, чемпосле того, как планировщик вытолкнет данные потока из базы данных - он должен просмотреть все данные, записанные в данные потока перед отправкой.это означает, что push должен иметь как минимум семантики релиза, так и поп-музыку.
, поскольку myctx.somedata = 42;
происходит до того, как данные потока будут созданы, они, конечно, также будут видны в точке, где данные потока будут найдены планировщиком.Ваш пользовательский код потока будет выполнен после того, как планировщик вытолкнет ваши данные потока.так что это, конечно, будет тоже myctx.somedata = 42;
.