信号量实现进程互斥、同步、前驱关系

信号量实现进程互斥、同步、前驱关系

image


imageimage

P、V 操作必须成对出现。缺少 P(mutex) 就不能保证临界资源的互斥访问。缺少 V(mutex) 会导致资源永不被释放,等待进程永不被唤醒。

一、实现进程互斥

注:下图中的第一行对信号量的初始化只是简化写法,并不严格遵循结构体的相关语法,仅供理解参考

image

补充:对不同的临界资源需要设置不同的互斥信号量。

二、实现进程同步

进程同步:要让各并发进程按要求有序地推进。

基本原理:

在一个顺序中,靠前的代码的后方设置 V(S) 操作 (释放资源),靠后的代码的后方设置 P(S) 操作 (使用资源),以达到只有持有资源才能继续运行的先后逻辑。

image

三、实现进程的前驱关系

本质上是多级进程同步。

image

posted @   Wind_730  阅读(11)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示