3.7.3.1、线程创建与回收
(1)int pthread_create(pthread_t *restrict tidp, const pthread_attr_t *restrict attr, void *(*start_rtn)(void), void *restrict arg); 返回值:若是成功建立线程返回0,否则返回错误的编号; 形参: tidp 要创建的线程的线程id指针, attr 创建线程时的线程属性 ,start_rtn 返回值是void类型的指针函数 arg start_rtn的形参。说明:创建一个具有指定参数的线程。 头文件:#include <pthread.h>
(2)int pthread_join(pthread_t thread, void **retval); 返回值:若是成功建立线程返回0,否则返回错误的编号; 形参: thread 被等待的线程标识符, retval 一个用户定义的指针,它可以用来存储被等待线程的返回值。 说明:这个函数是一个线程阻塞的函数,调用它的函数将一直等待到被等待的线程结束为止,当函数返回时,被等待线程的资源被收回。 头文件:#include <pthread.h>
(3)int pthread_detach(pthread_t thread); 返回值:若是成功返回0,否则返回错误的编号。 形参: thread 要释放线程的标识符ID。
3.7.3.2、线程取消
(1)pthread_cancel 一般都是主线程调用该函数去取消(让它赶紧死)子线程
(2)pthread_setcancelstate 子线程设置自己是否允许被取消
(3)pthread_setcanceltype
3.7.3.3、线程函数退出相关
(1)pthread_exit与return退出
(2)pthread_cleanup_push
(3)pthread_cleanup_pop
3.7.3.4、获取线程id
(1)pthread_self