jac*_*hab 7 linux multithreading
从pthread_join()手册页:
当一个 joinable 线程终止时,它的内存资源(线程描述符和stack)在线程执行之前不会被释放pthread_join.因此,pthread_join必须为每个joinable创建的线程调用一次以避免内存泄漏.
这是否意味着我需要加入我创建的每个线程以防止泄漏?但加入阻止来电者.
请解释一下.
你不需要加入一个帖子,但这是一个好主意.在不调用pthread_join()的情况下,main()函数有可能在线程终止之前返回.在这种情况下,pthread_join()使应用程序等待,直到另一个线程完成处理.此外,当您加入该主题时,它使您有机会检查返回值并确保一切顺利,并且它使您有机会清理可能与该主题共享的任何资源.
编辑:您可能感兴趣的函数是pthread_detach().pthread_detach()允许在线程终止后清除线程的存储,因此之后不需要加入线程.