деструкторы потоков в C ++ 0x vs boost

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

Я обычно использую boost :: thread для многопоточности в C ++. Поправьте меня, если я ошибаюсь, но объект boost :: thread отключается автоматически, когда он выходит за пределы области видимости.

Мне кажется, что подход ускорения следует принципу RAII, а стандарт - нет.

Знаете ли вы, есть ли для этого какая-то конкретная причина?

13
задан meagar 19 March 2013 в 13:52
поделиться