(1)int pthread_create(pthread_t*thread,const pthread_attr_t *attr,void*(*start_routine)(void *),void*arg)
功能:创建一个新的进程,并将线程加入到当前进程
返回值:线程创建函数,创建成功返回0,失败返回相关错误代码;
参数:
thread:指向线程标识符的指针
tattr:设置线程属性,可由pthread_attr_init()函数创建默认属性对象
start_routine:线程运行函数的起始地址,注意start_routine的返回值地址必须无效
arg:运行函数的参数,arg首选动态从堆上分配内存(进程,这样资源可以由程序控制回收, delete, 从栈上(线程)分配内存可能导致地址无效或在线程终止时地址被重新分配
(2)pthread_t pthread_self(void)
功能:gingneng获取线程ID函数,返回调用线程的ID;线程可以通过调用pthread_self函数获得自身线程标识。
(3)int pthread_equal(pthread_t t1,pthread_t t2)
目标:判断两个线程地址是否相等。
参数:两个线程id。
返回值:线程id相等,返回0;不相等,返回非0。返回值一定要注意,相等时才返回0。设置该函数
意义:不同平台线程id的类型不同。
(4)int pthread_join(pthread_t thread,void ** retval)
目标:使已经结束的线程分离(detached)。
参数:回收线程的id,获取线程退出的返回值(可设置NULL不获取)。
返回值:成功返回0,失败返回错误码。
注:
retval指针的指向:线程return,则获得线程中函数的返回值;
线程被别的线程调用pthread_cancel()异常终止,则获得PTHREAD_CANCELED;
线程调用pthread_exit(void *retval)主动退出,则获得retval;
(5)int pthread_detach(pthread_t thread)
目标:使目标线程变为detached,包括已结束但未分离的线程。
参数:目标线程id。
返回值:成功返回0,失败返回错误码。
(6)void pthread_exit(void*retval);
功能:主动进行线程退出。
参数:自己设定退出后的返回值。