![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux线程同步
cncoderwang
这个作者很懒,什么都没留下…
展开
-
Linux多线程之互斥锁
互斥锁指代相互排斥,它是最基本的同步形式。互斥锁用于保护临界区,以保证任何时刻只有一个线程在执行其中的代码(假设互斥锁由多个线程共享),或任何时刻只有一个进程在执行其中的代码(假设互斥锁由多个进程共享)。既然任何时刻只有线程能够锁住一个给定的互斥锁,于是这样的代码保证任何时刻只有一个线程在执行其临界区中的指令。 在Linux中,互斥锁被声明为具有pthread_mutex_t数据类型的变量。如果...原创 2018-03-19 14:52:45 · 706 阅读 · 0 评论 -
Linux多线程之条件变量
上一节中,Linux多线程之互斥锁最后遗留了一个问题,consumewait函数会一直轮询检查生产者是否生产好了条目,这样很浪费CPU的时间,因此,需要有另外一种类型的同步,它允许一个线程(或进程)睡眠到发生某个事件为止。互斥锁用于上锁,条件变量则用于等待。这两种不同类型的同步都是需要的。条件变量是类型为pthread_cond_t的变量,以下两个函数使用了这些#include <pthre...原创 2018-03-19 15:37:24 · 3631 阅读 · 3 评论 -
Linux多线程之读写锁
概述一般大家对读写锁应该有一个认知,当读数据比修改数据频繁,我们可以采用读写锁。读写锁的分配规则如下:只要没有线程持有某个给定的读写锁用于写时,那么任意数目的线程可以持有该读写锁用于读;仅当没有线程持有某个给定的读写锁用于读或写时,才能分配该读写锁用于读。获取与释放读写锁 读写锁的类型是pthread_rwlock_t,如果这个类型的某个变量是静态分配的,那么可以通过PTHREAD_RWL...原创 2018-03-28 15:11:04 · 2620 阅读 · 1 评论