LINUX下的线程同步——mutex和读写锁

来源:互联网 发布:淘宝网大童牛仔裤 编辑:程序博客网 时间:2024/06/02 08:38

用mutex保护的代码段,无论读写,一个线程占有时,别的线程都必须等待。

 

读写锁可以使多个线程同时读取,具体说来如下:

当读写锁是写加锁状态时,在这个锁被解锁之前,所有试图对这个锁加锁的线程都会被阻塞。

当读写锁在读加锁状态时,所有试图以读模式对它进行加锁的线程都可以得到访问权,但是如果线程希望以写模式对此锁进行加锁,它必须阻塞直到所有的线程释放锁。

通常,当读写锁处于读模式锁住状态时,如果有另外线程试图以写模式加锁,读写锁通常会阻塞随后的读模式锁请求,这样可以避免读模式锁长期占用,而等待的写模式锁请求长期阻塞。

 

和mutex相关的几个函数:

pthread_mutex_init

pthread_mutex_destroy

pthread_mutex_lock

pthread_mutex_unlock

 

和读写锁相关的几个函数:

pthread_rwlock_init

pthread_rwlock_destroy

pthread_rwlock_rdlock

pthread_rwlock_wrlock

pthread_rwlock_unlock

 

原创粉丝点击