好久没有用过多线程了,今天 看code有碰到 不少的多线程的东西,有必要快速扫一边,
#include <pthread.h>
1:pthread_t:线程的id,不同与进程id的是,进程id pid_t是一个非负的整数。而pthread_t在标准里并没有规定它的实现,可以用结构体来实现(不同的系统可能有不同的实现)
2:int pthread_equal(pthread_t tid1, pthread_t tid2)
由于pthread_t的不确定性,对两个pthread_t的对比要使用这个函数来进行才安全。
3:pthread_t pthread_self(void)
获取当前线程的标识符
4:int pthread_create(pthread_t *restrict tidp, const pthread_attr_t restrict attr, void * (*start_rtn)(void), void *restrict arg);
创建一个新的线程,tidp 线程ID,attr, 设定线程的属性, start_rtn 线程的函数 , arg 线程函数的参数
5:int pthread_exit (void * rval_ptr);
结束当前线程, 结束时传出的参数可由pthread_join获得
6:int pthread_join(pthread_t thread, void **rval_ptr)
等待thread线程结束,rval_ptr 返回的参数(根据返回方式的不同而不同)
7:int pthread_cancel(pthread_t tid)
请求tid 线程结束,(外部终止线程)
8:void pthread_cleanup_push(void(*rtn)(void*), void *arg);
void pthread_cleanup_pop(int execute);
为线程填加清理函数,正常结束的线程是不会调用 的,详细参考线程处理函数pthread_cleanup_push / pthread_cleanup_pop
-----------------------------------------