信号量和管程

回顾:

并发问题:多线程并发导致资源竞争;

同步概念:协调多线程对共享数据的访问任何时刻只能有一个线程执行临界区代码;

确保同步的方法:底层硬件支持;高层次的编程抽象;

而今天我们要说的信号量和管程都是高层次的编程抽象中的一种;

一、什么叫做信号量

信号量是操作系统提供的一种协调共享资源访问的方法:

  • 软件同步是平等线程间的一种同步协商机制;
  • 而信号量是由操作系统进行管理的,地位高于进程;
  • 信号量表示系统资源的数量。

举个例子,假设在球场上踢球,在没有裁判的情况下,就按场上既定的规则,但是当规则模糊不清时,就需要裁判,信号量相就相当于是裁判,具有最高地位。

信号量是一种抽象的数据类型:

信号量和车站的类比:

如图,假设有两个车站,刚开始是空的,则灯为绿,到两个车道被占满时࿰

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值