上期回顾
嵌入式系统开发
进程间的通信方式——线程
线程退出函数
1、语法:
pthread_exit()
void pthread_exit(void *retval)
2、功能
(1)线程调用这个函数时,可以主动退出(终止)
(2)它和exit()很像,exit()是终止整个程序,而pthread_exit是终止次线程,如果你在次线程里调用错误,调用的是exit,整个线程就终止了。
3、返回值
成功:return 0
失败:返回非零值
4、参数
retval:线程结束的返回值
如果返回值很多时,就会封装成一个结构体,返回结构体变量的地址即可。
5、用 return ()退出
example:
注册线程退出处理函数
1、语法:
void pthread_cleanup_push(void (*routine)(void *),void *arg);
void pthread_cleanup_pop(int execute)
2、弹栈线程退出处理函数的几种条件:
(1)pthread_cleanup_push (! 0) 主动弹栈
(2)如果线程是被别人调用pthread取消的,也会弹栈
(3)如果调用pthread exit函数也是会主动弹栈
注意:return退出的话,是不会自动弹栈的,想要自动弹栈用pthread_clean_pop(! 0),少了!,不弹出调用。