![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux线程
lu_k120
这个作者很懒,什么都没留下…
展开
-
linux线程笔记12
死锁 两个线程试图同时占用两个资源,并按不同的次序锁定相应的共享资源 解决方式 按相同的次序锁定相应的共享资源使用函数pthread_mutex_trylock(),它是函数pthread_mutex_lock()的非阻塞函数 死锁案例 线程A先对资源a上锁,然后睡眠,线程B也对资源b上锁,然后睡眠,线程a睡眠结束后继续对资源b上锁,这时资源b已经被线程b上锁了,线程a被阻塞原创 2017-01-09 11:00:55 · 101 阅读 · 0 评论 -
linux线程笔记11
使用线程信号量解决线程的同步问题 PV操作--结果计算 程序模型 将线程信号量(I)的初值设为0,t1计算完毕做v(1)操作,t2先做p(1)操作阻塞,等到t1做v(1)操作完毕,t2从阻塞中返回 #include #include #include #include typedef struct { int res; sem_t sem; }Resu原创 2017-01-09 10:38:16 · 133 阅读 · 0 评论 -
linux线程笔记6
线程同步---条件变量 互斥锁的缺点是它只有两种状态:锁定和非锁定 条件变量通过允许线程阻塞和等待另一个线程发送信号的方法弥补互斥锁的不足。 条件变量内部是一个等待队列,放置等待的线程,线程在条件变量上等待和通知,互斥锁用来保护等待队列(对等待队列上锁),条件变量通常和互斥锁一起使用 条件变量允许线程等待特定条件发生,当条件不满足时,线程通常先进入阻塞状态,等待条件发生变化,一旦其他的某个原创 2017-01-06 09:10:18 · 118 阅读 · 0 评论 -
linux线程笔记9
线程同步和互斥---线程信号量 信号量从本质上是一个非负整数计数器,是共享资源的数目,通常被用来控制对共享资源的访问。 信号量可以实现线程的同步和互斥 通过sem_post()和wem_wait()函数对信号量进行加减操作从而解决线程的同步和互斥。 信号量数据类型 sem_t 信号量的创建和销毁 #include int sem_init(sem_t *sem,int pshar原创 2017-01-09 10:07:21 · 231 阅读 · 0 评论 -
linux线程笔记8
读者---写者问题 案例:一个写,一个读 #include #include #inlcude #include typedef struct{ int value; pthread_cond_t rc; pthread_mutex_t rm; int r_w原创 2017-01-06 15:26:25 · 104 阅读 · 0 评论 -
linux线程笔记7
线程的状态转换 条件变量案例改进: 一个线程负责计算结果,多个线程负责获取结果 #include #include #include typedef struct { int res; int counter; //用于统计获取结果线程的数量原创 2017-01-06 10:57:47 · 81 阅读 · 0 评论 -
linux线程笔记4
互斥锁属性创建和销毁 #include int pthread_mutexattr_init(pthread_mutexattr_t *attr); int pthread_mutexattr_destroy(pthread_mutexattr *attr); 返回值:成功返回0 ,出错返回错误编号 参数:attr:互斥锁属性 互原创 2017-01-05 14:22:17 · 151 阅读 · 0 评论