线程共享资源如下:
静态数据 进程中打开的文件描述符 当前工作目录 用户I/D
int pthread_create(pthread_t *thread,pthread_attr_t *attr, void *(*start_routine)(void *),void *arg)
函数作用创建一个线程
thread :线程标识符
attr:线程属性设置 一般设置NULL
start_routine:线程函数的起始地址,是一个指向void的指针 .
arg: 传递给start_routine的参数
返回值 成功返回0 出错返回出错码
int pthread_join(pthread_t thread,void **retval);
主线程等待子线程退出.
**retval :用户定义指针,用来储存线程结束时的返回值 .
使用该函数时,主线程会阻塞等待子线程的退出。
返回值 成功则返回0 失败返回出错码
void pthread_exit(void *retval);
函数作用终止调用线程。
retval 线程结束时的返回值,这个值靠pthread_join()来获取
int pthread_cancel(pthread_t thread);
取消线程函数,这个函数是不阻塞的。
int pthread_setcancelstate(int _state,int *_oldstate)
设置函数的取消状态。
state 可选下面的值
▲PTHREAD_CANCEL_DISABLE 线程不可取消,直到启用取消状态
▲ PTHREAD_CANCEL_ENABLE 线程为可取消状态