目录:
1.线程创建
2.线程等待
3.线程终止
4.线程分离
5.线程ID
--------------------------------------------------------------------------------------------------------------------------------
1.线程创建
pthread_create
pthread_t *pthread 是一个输出型参数,会把我们的线程ID返回
pthread_self --- 获取线程ID
这个问题我们最后在解决!!!
--------------------------------------------------------------------------------------------------------------------------
线程健壮性的有问题的,一个线程出现了崩溃的问题,那么整个进程也就会跟着崩溃
--------------------------------------------------------------------------------------------------------------------
2.线程等待
一般而言,线程也是需要被等待的,如果不等待,可能会导致类似于”僵尸进程“的问题!!!
上面我们的情况是代码跑完了的情况下pthread_join来获取线程的退出信息
但是要是我们线程是异常退出的呢??我们的pthread_join能够或者需要处理嘛???根本不需要!!!,我们线程出现崩溃的情况,我主线程也别管了,你也管不了,你也是跟着崩溃了,那么你pthread_join没有意义了
所以pthread_join只需要关心跑的对还是不对。
--------------------------------------------------------------------------------------------------------------------------
3.线程终止
线程终止的方案:
1.函数中return(a. main函数退出return的时候代表(主线程and进程退出),b.其它线程函数return,只代表当前线程退出 )
2.pthread_exit()
exit()呢??
exit是终止进程的,不要在其它线程中调用,如果你就像终止一个线程的话!!!
3.pthread_cancel (取消目标线程!!!)
为什么是-1呢???
如果以后看到一个线程的退出时的返回值是-1,证明这个线程是被取消的 !!!
4.线程分离
如何分离呢??? pthread_detach
一个线程被设置分离之后,绝对不能在进行join了!!!!!
主线程不退出,新线程处理完业务,处理完毕在退出!!!
5.线程ID
可是这一串数字又是什么呢??