pthread_join()和pthread_detach()部分测试代码可参考 https://blog.csdn.net/weibo1230123/article/details/81410241
一.pthread_join()
pthread_join()即是子线程合入主线程,主线程阻塞等待子线程结束,然后回收子线程资源。
pthread_create()函数在创建进程的时候默认创建出来的进程是joinable的状态,也就是说在主进程中后续需要加上pthread_join()这样一个函数保证在主线程结束之前能够运行子线程,不然就可能出现主线程已经运行完毕但是子线程创建了还没运行这样的一个情况(会出现内存泄漏的问题)。
二.pthread_detach()
用到这一个函数的目的是主线程在运行的时候可能希望不阻塞能够继续运行,让子线程自己运行完毕后自己释放资源,即异步结束,调用join()可以看成是同步结束。这一个函数既可以在主线程中写也可以在子线程中写,在子线程中一般会调用pthread_self()函数,主线程中则需要知道要detach的子线程ID。
三.pthread_exit()
退出线程,并且保留退出状态直到调用调用进程调用pthread_join()或者该自己线程已经detach过了
补:记录一个介绍pthread_cond_wait()函数的很清晰的博客 https://blog.csdn.net/luckyabcd/article/details/4284874?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.control