摘要: [toc] #补充文档 > https://www.cnblogs.com/god-of-death/p/11452308.html #条件变量 锁的不足:只能给一个线程放行,剩下的还需要阻塞 条件变量:可以让多个线程访问临界区,但会出现混乱问题,仍需要和互斥锁搭配使用 #为什么 使用场景复杂,适用 阅读全文
posted @ 2023-08-30 20:10 LiviaYu 阅读(21) 评论(0) 推荐(0)
摘要: [toc] #读写锁 一把锁,并不是读锁和写锁 称之为读写锁,因为他既可以锁定读操作,也可以锁定写操作 `pthread_rwlock_t rwlock;` 锁中记录了 * 锁的状态 打开关闭 * 锁定的操作 锁读 锁写 * 哪个线程持有钥匙 使用方式和互斥锁相同: 1. 找共享资源 2. 确定临界 阅读全文
posted @ 2023-08-30 14:02 LiviaYu 阅读(40) 评论(0) 推荐(0)
摘要: [toc] #加锁后忘记解锁 ``` // 场景1 void func() { for(int i=0; i<6; ++i) { // 当前线程A加锁成功, 当前循环完毕没有解锁, 在下一轮循环的时候自己被阻塞了 // 其余的线程也被阻塞 pthread_mutex_lock(&mutex); .. 阅读全文
posted @ 2023-08-30 11:33 LiviaYu 阅读(21) 评论(0) 推荐(0)