в потоках?
https://pastebin.com/ZCrPJHzT
Вопрос относительно данного примера. Как работает семантика упорядочения мне объяснять не надо, а вот почему assertion никогда не проваливается – вопрос. Разве загрузка z не может выполниться до начала других потоков? К тому же, если я перенесу вызов join() после assertion, то оно наоборот, всегда проваливается. То есть обычный поток начинает своё исполнение после вызова join()/detach()? И что происходит с std::async() по умолчанию? Поток может и не запускаться до вызова get(), однако в этой точке поток выполнения всегда дождётся результата?
Поток начинает выполнение в промежутке между конструктором std::thread и окончанием join()
Обсуждают сегодня