博客
关于我
【Linux】为什么会有互斥锁?
阅读量:494 次
发布时间:2019-03-07

本文共 367 字,大约阅读时间需要 1 分钟。

同步与互斥是多线程编程中的两个核心概念。很多人误以为同步就能保证互斥,但实际上这是不正确的。真正实现互斥,往往需要用到互斥锁。

在 pthread_cond_wait 这个函数中,有一个关键点是它内部会自动释放互斥锁。具体来说,当我们调用 pthread_cond_wait 时,会将当前 PCB 推入等待队列,并释放所持有的互斥锁。这种设计使得等待过程不会阻塞互斥锁的使用。

另外,需要注意的是,互斥锁的使用是在小节内进行的。也就是说,只有在同一个函数中才会使用互斥锁保护,这样可以确保只有一个线程能够进入该区域。这样做既保证了互斥,又避免了多线程竞用的问题。

总的来说,pthread_cond_wait 的设计非常高效。它先将 PCB 放到等待队列中,然后释放互斥锁。这种做法既保证了等待过程的合法性,又避免了互斥锁的死锁风险。

转载地址:http://rnacz.baihongyu.com/

你可能感兴趣的文章
laravel server error 服务器内部错误
查看>>
iJ配置Maven环境详解
查看>>
面试题 08.01. 三步问题
查看>>
剑指 Offer 11. 旋转数组的最小数字
查看>>
作为我的第一篇csdn博客吧
查看>>
一道简单的访问越界、栈溢出pwn解题记录
查看>>
响应的HTTP协议格式+常见的响应码
查看>>
将windows里的内容直接复制粘贴到ubuntu,提高效率
查看>>
[PHP] error_reporting(0)可以屏蔽Fatal error错误
查看>>
thinkphp 的一些重要知识点
查看>>
Java学习第二章——Java基本语句
查看>>
遇到问题之-yum update无法连接镜像问题解决
查看>>
pycharm如何设置(错误、警告类的标准提醒)
查看>>
Python3运行的时候错误:ModuleNotFoundError: No module named 'PIL'
查看>>
PHP是世界上最好的语言?Phython第一个不服
查看>>
Bugku CTF-web6
查看>>
python入门到秃顶(10):异常
查看>>
百度背景换肤案例
查看>>
输出对象的值——踩坑
查看>>
在苹果Mac上如何更改AirDrop名称?
查看>>