您好,欢迎光临本网站![请登录][注册会员]  
文件名称: 使用VC++6.0实现的“操作系统”课程中的生产者-消费者问题
  所属分类: 讲义
  开发工具:
  文件大小: 44kb
  下载次数: 0
  上传时间: 2014-11-05
  提 供 者: oliver******
 详细说明: 一、原理 生产者线程: while (true) 生产 wait(empty) wait(mutex) 将产品放入队列 signal(mutex) signal(full) end while 消费者线程: while (true) wait(full) wait(mutex) 从队列中取出产品 signal(mutex) signal(empty) 消费 end while 信号量full表示可消费的产品数量,empty代表空单元的数量(用于容纳新生产的产品),mutex用于互斥地访问产品队列。wait操作对应于P原语,表示可用资源数量<=0时,请求线程处于等待状态(线程阻塞);signal操作对应于V原语,表示释放可用资源,使得等待相同资源的线程进入就绪队列。 产品队列使用循环队列表示,设有rear和front指针,从rear指向的单元放入产品(入队),从front指向的单元取出产品消费(出队)。 二、具体实现 1. 信号量操作用Win32 API函数完成 (1)创建信号量:CreateSemaphore (2)wait操作:WaitForSing leObject (3)signal操作:ReleaseSemaphore 2. 线程操作使用MFC全局函数: (1)创建线程:AfxBeginThread (2)撤销线程:AfxEndThread 生产和消费在视图上以绘制饼图的方式展现。可以选择菜单项“开启线程->加快(减慢)生产,减慢(加快)消费”来随机调整生产和消费的时间,以观察生产者或消费者线程阻塞的状况。 程序在VC++6.0下编译通过。 ...展开收缩
(系统自动生成,下载前可以参看下载内容)

下载文件列表

相关说明

  • 本站资源为会员上传分享交流与学习,如有侵犯您的权益,请联系我们删除.
  • 本站是交换下载平台,提供交流渠道,下载内容来自于网络,除下载问题外,其它问题请自行百度
  • 本站已设置防盗链,请勿用迅雷、QQ旋风等多线程下载软件下载资源,下载后用WinRAR最新版进行解压.
  • 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
  • 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
  • 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.
 输入关键字,在本站1000多万海量源码库中尽情搜索: