• Lecture 7 Synchronization(进程同步)


    1 并发

    并发进程/线程

    • 在内存中同时存在的若干个进程/线程,由操作系统的调度程序采用适当的策略将他(们)调度至CPU(s)上运行,同时维护他们的状态队列。
      • 多个并发进程/线程从宏观上是同时在运行;
      • 从微观上看,他们的运行过程是走走停停;
      • 并发的进程/线程之间是交替执行(Interleaving)。
    • 注:此后课中不再刻意区分并发进程和并发线程,他们都可以理解为运行的实体和调度的单位。

    并发进程之间的关系

    • 独立关系
      • 并发进程分别在自己的变量集合上运行
      • 例如:chrome进程和music进程
    • 交互关系
      • 并发进程执行过程中需要共享或是交换数据
      • 例如:银行交易服务器上的receiver进程和handler进程
      • 交互的并发进程之间又存在着竞争和协作的关系

    2 竞争

    竞争(RACE)
    在这里插入图片描述


    在这里插入图片描述


    ![在这里插入图片描述](https://img-blog.csdnimg.cn/c9dd03ead40a4870afad60c663475926.png)

    3 协作

    协作(COOPERATION)

    在这里插入图片描述


    ![在这里插入图片描述](https://img-blog.csdnimg.cn/750a315cf2c24138a9f9fcb64c7606f7.png)
    ![在这里插入图片描述](https://img-blog.csdnimg.cn/b0e25af72e57471ab998d27b76bcf4b5.png)
    ![在这里插入图片描述](https://img-blog.csdnimg.cn/6cfcbc20b8544024a9b304ecce826949.png)

    4 异步产生的错误

    异步

    • Asynchronous means RANDOM!
    • 会引发竞争条件(Race Condition):一种这样的情况: 多个进程并发操作同一个数据导致执行结果依赖于特定的 进程执行顺序。

    在这里插入图片描述

    5 同步

    • 进程同步是一种维持协作进程数据一致性的机制。
    • 同步的工具
      • 互斥锁
      • 信号量
  • 相关阅读:
    vsto转换为windows服务 并部署服务
    新零售SaaS架构:中央库存系统架构设计
    unity资源管理之Addressable
    【java】【项目实战】[外卖九]项目优化(缓存)
    免费下载 | ContextCapture分块OBJ模型合并与裁剪
    Jni GetMethodID中函数标识sig的详细解释
    RocketMQ实战之Consumer
    国际结算名词解释汇总
    求学之路五、六月的Review
    Linux :realpath 命令
  • 原文地址:https://blog.csdn.net/weixin_61823031/article/details/126431859