当前位置: 首页 > news >正文

进程的同步和互斥

进程同步(synchronous)

✅通俗理解:

就像在排队买饭,一个一个来,前面的人不走,后面的人就不能干事
进程同步就是:多个进程之间需要协调,有先后顺序一个进程要等另一个进程完成某件事后才能继续

🎯举个例子:

你和朋友一起搭积木:

  • 你负责搭第一层,

  • 他负责搭第二层,

  • 他必须等你第一层搭好后,才能开始。

这就是同步:有依赖,有先后,谁先做完谁后做都讲究顺序。


进程异步(asynchronous)

✅通俗理解:

就像在食堂里点餐,你点好餐以后可以找座位坐着等,后厨在忙着做菜,你不用一直站着等,等做好了再通知你来取。
进程异步就是:大家互不等候,各干各的,有结果了再通知或交接。

🎯举个例子:

你和朋友写一篇报告:

  • 你写前言和总结,他写正文部分,

  • 写的顺序没有依赖,

  • 写完后合并就行。

这就是异步:不讲顺序,各自完成自己的部分即可。

进程互斥

为了实现对临界资源的互斥访问,同时保证系统整体性能,需要遵循以下原则:

  1. 空闲让进。临界区空闲时,可以允许一个请求进入临界区的进程立即进入临界区;

  2. 忙则等待。当已有进程进入临界区时,其他试图进入临界区的进程必须等待;

  3. 有限等待。对请求访问的进程,应保证能在有限时间内进入临界区(保证不会饥饿);

  4. 让权等待。当进程不能进入临界区时,应立即释放处理机,防止进程忙等待。

为什么要进程互斥

假设有两个进程 A 和 B,都要向同一个打印机发送任务:

  1. A 发送打印内容“学生成绩”

  2. B 发送打印内容“工资单”

如果没有互斥控制,它们可能会同时操作打印机,结果打印出的内容可能是:

学生工分资单

内容完全错乱!同样的问题也可能发生在共享内存、全局变量、数据库记录等任何“共享资源”上。

相关文章:

  • Seata 分布式事务 快速开始
  • Crawl4AI:打破数据孤岛,开启大语言模型的实时智能新时代
  • 597页PPT丨流程合集:流程梳理方法、流程现状分析,流程管理规范及应用,流程绩效的管理,流程实施与优化,流程责任人的角色认知等
  • Docker Compose常用命令
  • 公路路面病害检测
  • 数据结构:顺序表的实现
  • 使用 Spring Boot Admin 通过图形界面查看应用配置信息的完整配置详解,包含代码示例和注释,最后以表格总结关键配置
  • 使用 rebase 轻松管理主干分支
  • 描述城市出行需求模式的复杂网络视角:大规模起点-目的地需求网络的图论分析
  • 数据仓库ODS、DWD、DWS、ADS各层介绍
  • 关于创建UNIX/Linux daemon进程的笔记
  • 【漫话机器学习系列】217.监督式深度学习的核心法则(Supervised Deep Learning Rule Of Thumb)
  • Spark-Streaming简介和核心编程
  • 【盈达科技GEO优化】向量数据库:人工智能营销时代的核心引擎
  • 【信息安全工程师备考笔记】第二章 网络信息安全概述
  • 门控循环单元(GRU)
  • 基于机器学习的房租影响因素分析系统
  • 力扣面试150题--有效的括号和简化路径
  • STM32 中断系统深度剖析
  • 高并发抢券系统设计与落地实现详解
  • 理想汽车副总裁刘杰:不要被竞争牵着鼻子走,也不迷信护城河
  • 两部门:推动“青年驿站”为毕业生跨地区求职提供住宿优惠便利
  • 健康社区“免疫行动”促进计划启动,发布成人预防“保典”
  • 人大法工委:涉核领域还需要有一部统领性的基础法律
  • 神舟二十号3名航天员顺利进驻中国空间站
  • 上海体育消费节将从5月持续至11月,推出运动装备商品促销活动