前几天,写了一段多线程的代码,发现当创建的线程数(包括已经退出的线程)累计到一定程度后,就不能再创建新的线程了。今天发现原来是自己的程序没写对。
在linux下,新创建的子线程,默认情况下在线程结束时,是不会自动释放资源的。要释放资源必须通过
pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED)
设置线程属性,或者在创建线程后通过
int pthread_detach(pthread_t th);
进行设置。
转载于:https://www.cnblogs.com/justforfan528/articles/911496.html