linux c 互斥锁

作者:fly 发布于:2016-11-29 13:34 分类:Linux

1 int pthread_mutex_init(pthread_mutex_t * mutex , pthread_mutexattr_t * attr);

函数是以动态方式创建互斥锁的,参数attr指定了新建互斥锁的属性。如果参数attr为NULL,则使用默认的互斥锁属性,默认属性为快速互斥锁 。互斥锁的属性在创建锁的时候指定,在LinuxThreads实现中仅有一个锁类型属性,不同的锁类型在试图对一个已经被锁定的互斥锁加锁时表现不同。

pthread_mutexattr_init()函数成功完成之后会返回零,其他任何返回值都表示出现了错误。

函数成功执行后,互斥锁被初始化为锁住态。

 

2 int pthread_mutex_destroy (pthread_mutex_t * mutex);

互斥锁销毁函数在执行成功后返回 0,否则返回错误码

 

3 int pthread_mutex_lock (pthread_mutex_t * mutex );

当pthread_mutex_lock()返回时,该互斥锁已被锁定。线程调用该函数让互斥锁上锁,如果该互斥锁已被另一个线程锁定和拥有,则调用该线程将阻塞,直到该互斥锁变为可用为止

 

 

4 int pthread_mutex_unlock (pthread_mutex_t * mutex );

与pthread_mutex_lock成对存在。释放互斥锁

 

5 int pthread_mutex_trylock (pthread_mutex_t * mutex );

函数成功返回0。任何其他返回值都表示错误。

函数是pthread_mutex_lock函数的非阻塞版本。如果mutex参数所指定的互斥锁已经被锁定的话,调用pthread_mutex_trylock函数不会阻塞当前线程,而是立即返回一个值来描述互斥锁的状况。

 

发表评论:

 
Powered by emlog sitemap