在使用boost的thread库的时候,如果主程序退出,thread创建的线程不做任何处理,则会出现内存泄露。
解决方法:
在主线程退出时,对所有thread使用interrupt()命令,然后主程序再退出。
其中
boost::thread::join()
boost::thread::timed_join()
boost::thread::sleep()
boost::condition_variable::wait()
boost::condition_variable::timed_wait()
boost::condition_variable_any::wait()
boost::condition_variable_any::timed_wait()
boost::this_thread::sleep()
boost::this_thread::interruption_point()
执行到这些函数的时候就可以中断退出。
推荐使用thread_group来管理所有线程