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

仿牌网站优化国内搜索网站排名

仿牌网站优化,国内搜索网站排名,巫山网站建设,珠海网站建设防目录 为什么要引入管程 管程的定义和基本特征 用管程解决生产者消费者问题 结论 本节思维导图 为什么要引入管程 原因:在解决进程的同步与互斥问题时,信号量机制存在编写困难和易出错的问题 能不能设计一种机制,让程序员写程序时不再需…

目录

为什么要引入管程

管程的定义和基本特征

用管程解决生产者消费者问题

结论

本节思维导图


为什么要引入管程

原因:在解决进程的同步与互斥问题时,信号量机制存在编写困难和易出错的问题

能不能设计一种机制,让程序员写程序时不再需要关注复杂的PV操作,让写代码更轻松呢

 ”管程“:一种更高级同步机制

管程的定义和基本特征

管程是一种特殊的软件模块,由以下部分组成:

  1. 局部于管程的共享数据结构说明
  2. 对该数据结构进行操作的一组过程(”过程“即”函数“)
  3. 对局部于管程的共享数据设置初始值的语句
  4. 管程有一个名字

 管程的基本特征:

  1. 局部于管程的数据只能被局部于管程的过程所访问
  2. 一个进程只能通过调用管程内的某个过程才能进入管程访问共享数据
  3. 每次仅允许一个进程在管程内执行某个内部过程

用管程解决生产者消费者问题

empty和full是标志信号量用于解决同步问题 

N为缓冲区的大小

情况一:两个生产者并发执行,依次调用了insert过程

        当生产者一调用insert进程时,生产者二想要调用insert进程时会被编译器阻塞(即管程解决生产者消费者问题时,是利用编译器实现各进程互斥地进入管程中地过程)

情况二: 两个消费者进程先执行,生产者后执行

        由于缓冲区中产品初始值为0,所以两个消费者进程在并发执行remove函数时都会在wait(empty)处阻塞,然后被挂在等待队列中,此时生产者进程将自己生产的产品放入缓冲区(insert_item(item))(缓冲区中还能放下新生产的产品)然后判断此时新产品是否是缓冲区中的唯一一个产品(如果是则说明可能会有消费者在等待新产品的生产,此时唤醒排在empty等待队列队头的消费者进程)然后count--,在消费者进程拿走产品前会判断缓冲区在自己拿走产品之前是否已经满了(如果已经满了,证明此时需要唤醒生产者进程去生产因拿走产品导致的缓冲区出现的空位)最后消费者进程拿走产品(最后肯定能拿走,但是拿走之前你得让之前那些因为缓冲区满了而停工的生产者继续生产)

结论

引入管程的目的就是要更方便地实现进程互斥和同步:

  1. 需要在管程中定义共享数据(生产者消费者问题中的缓冲区)
  2. 需要在管程中定义用于访问这些共享数据的”入口”,即函数(生产者消费者问题中,可以定义一个函数用于将产品放入缓冲区,再定义一个函数用于从缓冲区取出产品)
  3. 只有通过这些特定的“入口”才能访问共享数据
  4. 管程中有很多“入口”,但是每一次只能开放其中一个“入口”,并且只能让一个进程或线程进入(生产者消费者问题中,各进程需要互斥地访问共享缓冲区,管程地这种特性即可保证一个时间段内最多只会有一个进程在访问缓冲区,这种互斥特性是由编译器负责实现地,程序员不需要关心)
  5. 可在管程中设置条件变量及与之相关的等待/唤醒操作以解决同步问题。可以让一个进程或线程在条件变量上等待(此时,该进程应先释放管程地使用权,也就是让出“入口”):可以通过唤醒操作将等待在条件变量上地进程或线程唤醒

        程序员可以用某种特殊地语法定义一个管程,之后其他程序员就可以使用这个管程提供地特定“入口”很方便地实现了进程地同步和互斥了(封装思想)

本节思维导图

~over~

http://www.ds6.com.cn/news/1295.html

相关文章:

  • 网站需要写哪些内容吗口碑营销是什么
  • 广州网站建设 易企建站全网营销推广怎么做
  • 青岛知名网站建设公司seo推广专员招聘
  • 搜索网站定制公司如何自己做一个网站
  • 天津建设厅 注册中心网站首页软文推广是什么意思
  • 2018网站建设网站快速排名上
  • 功能网站建设多少钱山东网络推广优化排名
  • 重庆做网站建设的公司阜新网站seo
  • 安康网站建设公司报价网络口碑营销名词解释
  • 重庆忠县网站建设公司哪里有58精准推广点击器
  • 何苦做游戏网站世界比分榜
  • 网站开发主要有两个阶段公司网页网站建设
  • 怎么下载黑龙江人社app重庆做优化的网络公司
  • 如何将网站上传到空间短视频seo排名
  • wordpress主题 外贸网站模板下载seo研究中心骗局
  • 水平b2b代表网站数据分析软件
  • 虚拟机可以做多个网站公司做网络推广怎么做
  • 邵阳网站建设网站网站优化北京seo
  • 贵阳做网站 优帮云上海最近3天疫情情况
  • 怎么做伪静态网站seo排名关键词点击
  • wordpress虚拟物品seo关键词排名优化工具
  • 代运营网站公司网页制作
  • python语言骗局seo站长工具下载
  • 网站建设确认单神马搜索seo优化排名
  • 印刷网站建设价格山东免费网络推广工具
  • 网站改版报告贴吧高级搜索
  • 公安备案网站首页短视频营销策略
  • 武汉微信网站制作app开发者需要更新此app
  • 电商网站设计推荐亿企邦广告投放的方式有哪些
  • 湖南做网站 磐石网络永久8x的最新域名