zoukankan      html  css  js  c++  java
  • [VC++.NET]多线程作业中内存泄漏的问题

    作业要求:
      用软件模拟一个生产者与消费者问题:一个仓库可以存放8件物品。生产者每生产一件产品,将产品放入仓库,仓库满了就停止生产。消费者每次从仓库中去一件物品,然后进行消费,仓库空时就停止消费。
      编写一个SDI的MFC应用程序,动态模拟“生产者-消费者”问题
      生产者一般处于休眠状态.随机地醒来去查看缓冲区,如果缓冲区不满,则填充一个数据到缓冲区中,如果是满的,则阻塞,等待消费者唤醒
      消费者一般处于休眠状态.随机地醒来去查看缓冲区,如果缓冲区非空,则从缓冲区中消费一个数据,如果是空的,则阻塞,等待生产者唤醒  生产者和消费者互斥地访问缓冲区
      在程序中使用辅助线程来模拟生产者和消费者的行为:本作业要求起2个生产者线程,1个消费者线程  同时在客户区中显示生产者和消费者的行为
      采用ANISOTROPIC映射模式,设置窗口宽和高都为1000单位。
      在主框架窗口的客户区中显示3X3 的方格,方格每边长100,外围的八个方格代表缓冲区,当缓冲区中某个槽被生产者填充数据,则相应的方格填充为灰色,当缓冲区中某个槽的数据被消费者取走,则相应的方格填充为白色
      中间的一个方格用于指示缓冲区的状态:空时为蓝色,满时为红色,非空非满时为绿色
      双击鼠标开始模拟,再次双击停止模拟
      菜单中添加开始模拟和停止模拟的选项
      状态栏中显示在模拟过程中缓冲区正在被谁操作:如果是生产者在操作缓冲区则显示“生产者”,如果是消费者在操作缓冲区则显示“消费者”
     
      作业的过程中,参考了《用vc实现生产者消费者问题》,所以和原文有同样一个问题:那就是创建线程时的内存泄漏问题。虽然作业交了,但是这个问题在心头挥之不去……  
     
    源码下载
  • 相关阅读:
    C#-练习题
    C#-命名空间(十五)
    C#-枚举(十三)
    C#-多态(十二)
    C#-继承(十一)
    C#-结构体(十)
    C#-类(九)
    C#-方法(八)
    二叉树深度遍历和广度遍历
    iOS main.m解析
  • 原文地址:https://www.cnblogs.com/Maverick/p/190236.html
Copyright © 2011-2022 走看看