每次新建线程都会有资源的开销,在新线程里面没有调用pthread_join 或 pthread_detach会导致内存泄漏, 创建的线程越多,内存利用率就会越高, 直到你再无法创建线程,最终只能结束进程。
解决方法有三个:
1. 线程里面调用 pthread_detach(pthread_self())
2 . 在创建线程的设置PTHREAD_CREATE_DETACHED属性
3. 创建线程后用 pthread_join() 一直等待子线程结束。
每次新建线程都会有资源的开销,在新线程里面没有调用pthread_join 或 pthread_detach会导致内存泄漏, 创建的线程越多,内存利用率就会越高, 直到你再无法创建线程,最终只能结束进程。
解决方法有三个:
1. 线程里面调用 pthread_detach(pthread_self())
2 . 在创建线程的设置PTHREAD_CREATE_DETACHED属性
3. 创建线程后用 pthread_join() 一直等待子线程结束。