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