当前位置: 首页 > 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 中断系统深度剖析
  • 高并发抢券系统设计与落地实现详解
  • 看纪录片抵学分,贺桂梅:纪录片是对抗低质碎片信息的好媒介
  • 2025五一档首日电影票房破亿
  • 居委业委居民群策群力,7位一级演员来到上海一小区唱戏
  • 解放日报:浦东夯实“热带雨林”式科创生态
  • 人民日报评论员:焕发风雨无阻、奋勇前行的精气神
  • AI世界的年轻人,如何作答未来