【发布时间】:2012-05-27 18:34:13
【问题描述】:
当线程被添加到 boost::thread_group 时:
boost::thread_group my_threads;
boost::thread *t = new boost::thread( &someFunc );
my_threads.add_thread(th);
只有当my_threads 对象超出范围时,所有创建的 boost::thread 对象才会被删除。但是我的程序主线程在执行时会产生很多线程。因此,如果已经完成了大约 50 个线程,则程序会使用大约 1,5Gb 的内存,并且只有在主进程终止时才会释放该内存。
问题是:线程函数完成后如何删除这些boost::thread对象?!
【问题讨论】:
-
我相信这个问题是类似的:stackoverflow.com/questions/3970818/…
-
@Naveen,我确实需要一个可以在主线程请求时中断所有池子线程的包装器。在您链接的问题中,他们建议只创建一个线程并从中分离 boost::thread 对象。
标签: c++ boost boost-thread