线程退出后资源释放问题
一、创建线程时使用默认属性
使用pthread_create()创建线程时,设置属性为NULL,线程退出时该线程占用的资源不会释放。比如遇到过反复创建某个线程后返回,会导致其占用的虚拟内存不断增加,最终导致系统资源不可用。
二、线程退出时如何释放占用资源
有几种方法,实测方法2可行,其他可以自己尝试
1.可以在pthread_create时设置线程属性为unjoinable
2.简单方法,线程函数头加上 pthread_detach(pthread_self())
3.在主线程适时调用pthread_join();即主线程阻塞等待子线程结束,然后回收子线程资源。