Когда потоки добавляются для увеличения :: thread_group как:Как удалить объект увеличения потока, когда сам поток завершается?
boost::thread_group my_threads;
boost::thread *t = new boost::thread(&someFunc);
my_threads.add_thread(th);
все созданные объекты подталкивание :: нити удаляются только тогда, когда my_threads
объект выходит из области видимости. Но мой основной поток программы генерирует много потоков во время выполнения. Так что, если уже сделано около 50 потоков, то программа использует около 1,5Gb памяти, и эта память освобождается только при завершении основного процесса.
Вопрос: Как удалить эти boost :: thread объект, когда функция потока закончена?!
Я считаю, что этот вопрос аналогичен: http://stackoverflow.com/questions/3970818/whats-the-best-way-to-delete-boostthread-object-right-after-its-work-is-compl – Naveen
@Naveen, мне действительно нужна оболочка, которая может прервать все связанные дочерние потоки, когда основной поток попросит об этом. В вопросе, который вы связали, они рекомендуют просто создать поток и отсоединить boost :: thread object от него. –