pthread.h相关函数
POSIX(Portable Operating System Interface,X则表明其对Unix API的传承。):可移植操作系统接口
POSIX线程(英语:POSIX Threads,常被缩写为Pthreads)是POSIX的线程标准,定义了创建和操纵线程的一套API。
Linux系统下的多线程遵循POSIX线程接口,称为pthread(POISX thread)。在linux下实现多线程程序时,需要用到头文件<pthread.h>
。
<pthread.h>
链接
1. pthread_create: 创建线程
int pthread_create(pthread_t *restrict tidp, const pthread_attr_t *restrict_attr,void*(*start_rtn)(void*),void *restrict arg);
第一个参数为指向线程标识符的指针
第二个参数用来设置线程属性
第三个参数是线程运行函数的地址
第四个参数是运行函数的参数
若成功则返回0,否则返回出错编号
2. pthread_join:等待一个线程的结束,线程间同步的操作
int pthread_join(pthread_t thread, void **retval);
第一个参数为线程标识符
第二个参数为用户定义的指针,用来存储线程的返回值
返回线程连接的状态,成功返回0,非0是失败
3. pthread_mutex_init:用于C函数的多线程编程中,互斥锁的初始化
互斥锁pthread_mutex_init()函数
int pthread_mutex_init(pthread_mutex_t *restrict mutex, const pthread_mutexattr_t *restrict attr);
pthread_mutex_init()函数是以动态方式创建互斥锁的,参数attr指定了新建互斥锁的属性。如果参数attr为NULL,则使用默认的互斥锁属性,默认属性为快速互斥锁 。
pthread_mutexattr_init()函数成功完成之后会返回零,其他任何返回值都表示出现了错误。
函数成功执行后,互斥锁被初始化为锁住态。
- pthread_mutex_lock:锁定互斥锁
- pthread_mutex_unlock:释放互斥锁