В эти дни я читаю pdf Разработка программ для машинного перевода . Он объясняет, что пользователь ДОЛЖЕН явно вызвать detach ()
для объекта класса std :: thread
в C ++ 0x, прежде чем этот объект выйдет за пределы области видимости. Если вы не назовете его std :: terminate (), будет вызвано
, и приложение умрет.
Я обычно использую boost :: thread
для многопоточности в C ++. Поправьте меня, если я ошибаюсь, но объект boost :: thread
отключается автоматически, когда он выходит за пределы области видимости.
Мне кажется, что подход ускорения следует принципу RAII, а стандарт - нет.
Знаете ли вы, есть ли для этого какая-то конкретная причина?