我是靠谱客的博主 曾经水蜜桃,这篇文章主要介绍pthread 编程:互斥锁属性,现在分享给大家,希望可以做个参考。

互斥锁的属性大概有如下几种:

PTHREAD_MUTEX_TIMED_NP,这是缺省值,也就是普通锁。当一个线程加锁以后,其余请求锁的线程将形成一个等待队列,并在解锁后按优先级获得锁。这种锁策略保证了资源分配的公平性。

PTHREAD_MUTEX_RECURSIVE_NP,嵌套锁,允许同一个线程对同一个锁成功获得多次,并通过多次unlock解锁。如果是不同线程请求,则在加锁线程解锁时重新竞争。

PTHREAD_MUTEX_ADAPTIVE_NP,适应锁,动作最简单的锁类型,仅等待解锁后重新竞争。

一般来说。嵌套锁的适用性强,因为它支持同个线程多次获取该锁

/* 需加上互斥锁 */
static pthread_mutex_t timer_lock;// = PTHREAD_MUTEX_INITIALIZER;
static pthread_mutexattr_t attr; 

    int ret;  
    if(( ret = pthread_mutexattr_init(&attr)) != 0){  
        fprintf(stderr, "create mutex attribute error. msg:%s", strerror(ret));  
        exit(1);  
    }  
    pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE);  
    pthread_mutex_init(&timer_lock, &attr);

最后

以上就是曾经水蜜桃最近收集整理的关于pthread 编程:互斥锁属性的全部内容,更多相关pthread内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(148)

评论列表共有 0 条评论

立即
投稿
返回
顶部