线程相关函数-读写锁
<h1 id="读写锁">读写锁</h1><h2 id="ptehread_rwlock_init函数">ptehread_rwlock_init函数</h2>
<p>此函数可以对一个读写锁进行初始化操作</p>
<pre><code>pthread_rwlock_t rwlock = PTHREAD_RWLOCK_INITIALIZER
int ptehread_rwlock_init(pthread_rwlock_t *rwlock ,const pthread_rwlockattr_t *attr)
//rwlock :传入一个读写锁变量的地址
//attr:设置读写锁的属性,默认属性填NULL
//ret:成功返回0,失败返回错误码
</code></pre>
<h2 id="pthread_rwlock_rdlock函数">pthread_rwlock_rdlock函数</h2>
<p>对读操作进行上锁,此函数有阻塞特性</p>
<pre><code>int pthread_rwlock_rdlock(pthread_rwlock_t *rwlock)
//rwlock :传入一个读写锁变量的地址
//ret:成功返回0,失败返回错误码
</code></pre>
<h2 id="pthread_rwlock_tryrdlock函数">pthread_rwlock_tryrdlock函数</h2>
<p>对读操作进行上锁,此函数没有阻塞特性,如果获取不到锁则返回,报错</p>
<pre><code>int pthread_rwlock_tryrdlock(pthread_rwlock_t *rwlock)
//rwlock :传入一个读写锁变量的地址
//ret:成功返回0,失败返回错误码
</code></pre>
<h2 id="pthread_rwlock_wrlock函数">pthread_rwlock_wrlock函数</h2>
<p>对写操作进行上锁,此函数有阻塞特性</p>
<pre><code>int pthread_rwlock_wrlock(pthread_rwlock_t *rwlock)
//rwlock :传入一个读写锁变量的地址
//ret:成功返回0,失败返回错误码
</code></pre>
<h2 id="pthread_rwlock_trywrlock函数">pthread_rwlock_trywrlock函数</h2>
<p>对写操作进行上锁,此函数没有阻塞特性,如果获取不到锁则返回,报错</p>
<pre><code>int pthread_rwlock_trywrlock(pthread_rwlock_t *rwlock)
//rwlock :传入一个读写锁变量的地址
//ret:成功返回0,失败返回错误码
</code></pre>
<h2 id="pthread_rwlock_unlock函数">pthread_rwlock_unlock函数</h2>
<p>此函数可以对读写锁进行解锁操作</p>
<pre><code>int pthread_rwlock_unlock(pthread_rwlock_t *rwlock)
//rwlock :传入一个读写锁变量的地址
//ret:成功返回0,失败返回错误码
</code></pre>
<h2 id="pthread_rwlock_destory函数">pthread_rwlock_destory函数</h2>
<p>此函数可以销毁一个读写锁</p>
<pre><code>int pthread_rwlock_destroy(pthread_rwlock_t *rwlock);
//rwlock:指向要销毁的读写锁的指针
//ret:0:成功销毁读写锁;EINVAL:rwlock 参数为 NULL 或指向的锁未正确初始化;EBUSY:锁当前正在被使用
</code></pre><br><br>
来源:https://www.cnblogs.com/lradian/p/18872080
頁:
[1]