|
函数名 |
pthread_mutex_init |
|
头文件 |
#include <pthread.h> |
|
函数原型 |
int pthread_mutex_init(pthread_mutex_t * mutex,const pthread_mutexattr_t * attr); |
|
函数功能 |
动态方式初始化互斥锁。下面是静态方式初始化互斥锁pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER; |
|
参数说明 |
1.mutex:被初始化的互斥锁; |
|
函数返回值 |
成功:返回0;失败:返回错误号。 |
|
函数名 |
pthread_mutex_lock |
|
头文件 |
#include <pthread.h> |
|
函数原型 |
int pthread_mutex_lock(pthread_mutex_t *mutex); |
|
函数功能 |
当pthread_mutex_lock()返回时,该互斥锁已被锁定。线程调用该函数让互斥锁上锁,如果该互斥锁已被另一个线程锁定和拥有,则调用该线程将阻塞,直到该互斥锁变为可用为止。 |
|
参数说明 |
1.mutex:被初始化的互斥锁。 |
|
函数返回值 |
成功:返回0;失败:返回错误号。 |
|
函数名 |
pthread_mutex_unlock |
|
头文件 |
#include <pthread.h> |
|
函数原型 |
int pthread_mutex_unlock(pthread_mutex_t *mutex); |
|
函数功能 |
解锁互斥锁,与pthread_mutex_lock成对存在。 |
|
参数说明 |
1.mutex:需要解锁的锁变量对象。 |
|
函数返回值 |
成功:返回0;失败:返回错误号。 |
|
函数名 |
pthread_mutex_trylock |
|
头文件 |
#include <pthread.h> |
|
函数原型 |
int pthread_mutex_trylock(pthread_mutex_t *mutex); |
|
函数功能 |
如果尝试给一个已由另外一个线程锁住的互斥锁上锁,那么pthread_mutex_trylock将立即返回,并返回错误码在errno中,为EBUSY。 |
|
参数说明 |
1.mutex:需要被上锁的锁变量对象。 |
|
函数返回值 |
成功:返回0;失败:返回错误号。 |
|
函数名 |
pthread_mutex_destroy |
|
头文件 |
#include <pthread.h> |
|
函数原型 |
int pthread_mutex_destroy(pthread_mutex_t *mutex); |
|
函数功能 |
销毁一个互斥锁,即意味着释放它所占用的资源,且要求锁当前处于开放状态。 |
|
参数说明 |
1.mutex:需要被释放的锁变量对象。 |
|
函数返回值 |
成功:返回0;失败:返回错误号。 |
表15-2 条件变量相关函数列表
|
函数名 |
pthread_cond_init |
|
头文件 |
#include < pthread.h> |
|
函数原型 |
int pthread_cond_init(pthread_cond_t *cond, const pthread_condattr_t *attr); |
|
函数功能 |
用来初始化一个条件变量。他使用变量attr所指定的属性来初始化一个条件变量,如果参数attr为空,那么它将使用默认的属性来设置所指定的条件变量。 |
|
参数说明 |
1.cond:条件变量; |
|
函数返回值 |
成功:返回0;失败:返回错误号。 |
|
函数名 |
pthread_cond_destroy |
|
头文件 |
#include < pthread.h> |
|
函数原型 |
int pthread_cond_destroy(pthread_cond_t *cond); |
|
函数功能 |
用来销毁所指定的条件变量,同时将会释放所给它分配的资源。调用该函数的线程也并不要求等待在参数所指定的条件变量上。 |
|
参数说明 |
1.cond:条件变量。 |
|
函数返回值 |
成功:返回0;失败:返回错误号。 |
|
函数名 |
pthread_cond_wait/pthread_cond_timedwait |
|
头文件 |
#include < pthread.h> |
|
函数原型 |
int pthread_cond_wait(pthread_cond_t *cond, pthread_mutex_t *mutex); |
|
函数功能 |
条件变量等待。 |
|
参数: |
1.cond:条件变量; |
|
返回值: |
成功:返回0;失败:返回错误号。 |
|
函数名 |
pthread_cond_signal/pthread_cond_broadcast |
|
头文件 |
#include < pthread.h> |
|
函数原型 |
int pthread_cond_signal(pthread_cond_t *cond); |
|
函数功能 |
当调用pthread_cond_signal时,一个在相同条件变量上阻塞的线程将被解锁。如果同时有多个线程阻塞,则由调度策略确定接收通知的线程。如果调用pthread_cond_broadcast,则将通知阻塞在这个条件变量上的所有线程。一旦被唤醒,线程仍然会要求互斥锁。如果当前没有线程等待通知,则上面两种调用实际上成为一个空操作。如果参数*cond指向非法地址,则返回值EINVAL。 |
|
参数说明 |
1.cond:条件变量。 |
|
函数返回值 |
成功:返回0;失败:返回错误号。 |
读写锁列表及相关函数:
|
函数名 |
pthread_rwlock_init |
|
头文件 |
#include < pthread.h> |
|
函数原型 |
int pthread_rwlock_init(pthread_rwlock_t *rwlock, const pthread_rwlockattr_t *attr); |
|
函数功能 |
此函数使用属性attr来初始化rwlock引用的读写锁。如果参数attr为空,使用默认的读写锁属性。也可以使用宏PTHREAD_RWLOCK_INITIALIZER初始化静态分配的读写锁。这相当于调用pthread_rwlock_init()动态初始化时指定的attr参数为NULL,区别在于,它不执行错误检查,将使用默认的属性初始化读写锁。 |
|
参数说明 |
1.rwlock:指向要初始化的读写锁的指针; |
|
函数返回值 |
成功:返回0;失败:返回错误号。 |
|
函数名 |
pthread_rwlock_destroy |
|
头文件 |
#include < pthread.h> |
|
函数原型 |
int pthread_rwlock_destroy(pthread_rwlock_t *rwlock); |
|
函数功能 |
用来销毁读写锁。 |
|
参数说明 |
1.rwlock:指向要销毁的读写锁的指针。 |
|
函数返回值 |
成功:返回0;失败:返回错误号。 |
|
函数名 |
pthread_rwlock_rdlock/pthread_rwlock_tryrdlock |
|
头文件 |
#include < pthread.h> |
|
函数原型 |
int pthread_rwlock_rdlock(pthread_rwlock_t *rwlock); |
|
函数功能 |
申请读锁。 |
|
参数: |
1.rwlock:指向要上锁的读锁的指针。 |
|
返回值: |
成功:返回0;失败:返回错误号。 |
|
函数名 |
pthread_rwlock_wrlock/pthread_rwlock_trywrlock |
|
头文件 |
#include < pthread.h> |
|
函数原型 |
int pthread_rwlock_wrlock(pthread_rwlock_t *rwlock); |
|
函数功能 |
申请写锁。 |
|
参数说明 |
1.rwlock:指向要上锁的写锁的指针。 |
|
函数返回值 |
成功:返回0;失败:返回错误号。 |
|
函数名 |
pthread_rwlock_unlock |
|
头文件 |
#include < pthread.h> |
|
函数原型 |
int pthread_rwlock_unlock(pthread_rwlock_t * rwlock); |
|
函数功能 |
释放读写锁。无论是读锁还是写锁都是使用这个函数来释放锁的。 |
|
参数说明 |
1.rwlock:指向要释放的读写锁的指针。 |
|
函数返回值 |
成功:返回0;失败:返回错误号。 |
666

被折叠的 条评论
为什么被折叠?



