Я читал книгу "C++20 для программистов: объектно-естественный подход, 3-е издание" и наткнулся на абзац в книге, в котором обсуждаются некоторые особенности std::jthread, а именно:
"Класс jthread также устраняет другие проблемы с потоками. В частности,
jthread поддерживает кооперативную отмену (раздел 17.9), поддерживает
правильную семантику перемещения и является типом RAII (обсуждаемым в разделе
11.5), который правильно очищает используемые им ресурсы».
Я пытаюсь понять, как std::jthread поддерживает «правильную семантику перемещения».
Оба std::thread и std::jthread поддерживают семантику перемещения, но если точка зрения автора о том, что std::thread не присоединяется после выхода объектов потока из области действия, относится к совместимости с RAII, то, похоже, она попадает в категорию несовместимости с RAII! Может ли кто-нибудь пояснить, что подразумевается под «правильной семантикой перемещения» в этом контексте? Как std::jthread обрабатывает семантику перемещения иначе или более эффективно по сравнению с std::thread?
Подробнее здесь: https://stackoverflow.com/questions/790 ... -semantics