`
bubble
  • 浏览: 148053 次
  • 性别: Icon_minigender_1
  • 来自: 辽宁
社区版块
存档分类
最新评论

写的作业,关于生产者消费者

阅读更多
java 代码
  1. Class prodct{}//为产品实体,内容省略    
  2. Interface People{   
  3.   
  4.      Void product();   
  5.   
  6.      Void consume();   
  7.   
  8. }   
  9.   
  10. //生产者    
  11.   
  12. Class Producer implement People{   
  13.   
  14. Private int amount=10;//默认一次生产10个产品   
  15.   
  16. Void product(Buffer buffer){   
  17.   
  18.    product(this.amount,buffer);   
  19.   
  20.  }   
  21.   
  22.  //用户可以自行设置一次生产产品的数量   
  23.   
  24. Void product( int AutherAmount, Buffer buffer){   
  25.   
  26.    for(var i=1;i<= AutherAmount;i++){   
  27.   
  28.    createProduct(buffer);   
  29.   
  30. }   
  31.   
  32.  }   
  33.   
  34. Void createProduct(Buffer buffer){   
  35.   
  36.    //得到新产品,并向Buffer中投放   
  37.   
  38.    buffer.P( );   
  39.   
  40.    buffer.object[buffer.getFull]=new Product();   
  41.   
  42.    buffer.V( );   
  43.   
  44. }   
  45.   
  46. }   
  47.   
  48. //消费者   
  49.   
  50. Class Consumer implement People{   
  51.   
  52. Private int amount=10;   
  53.   
  54. Public Product[] products;   
  55.   
  56. consume(Buffer buffer){   
  57.   
  58.    consume(this.amount,buffer);   
  59.   
  60.  }   
  61.   
  62. consume(int AutherAmount, Buffer buffer){   
  63.   
  64.    for(var i=1;i<= AutherAmount;i++){   
  65.   
  66.    getProduct(budder);   
  67.   
  68. }   
  69.   
  70.     
  71.   
  72.  }   
  73.   
  74. Void getProduct(Buffer buffer){   
  75.   
  76.    //Buffer中得到新产品   
  77.   
  78.    buffer.V( );   
  79.   
  80.    Producs[buffer.getEmpty]=buffer.object[buffer.getFull];   
  81.   
  82.    buffer.P( );   
  83.   
  84. }   
  85.   
  86. }   
  87.   
  88. Interface PandV{   
  89.   
  90. Void P( );   
  91.   
  92. Void V( );   
  93.   
  94. }   
  95.   
  96. //缓冲区   
  97.   
  98. Class Buffer implement PandV{   
  99.   
  100.      Public Object[] object=new object[];   
  101.   
  102.      Private int full;   
  103.   
  104.      Private int empty;   
  105.   
  106.      Public Int getFull(){return this.full;}   
  107.   
  108. Public Int getEmpty(){return this.empty;}   
  109.   
  110.      Void Buffer(){   
  111.   
  112.          Buffer(10);//默认缓冲区大小为10   
  113.   
  114. }   
  115.   
  116.      Void Buffer(int size){   
  117.   
  118.     This.object.length=size;   
  119.   
  120.     This.full=0;//full初始为0   
  121.   
  122.     This.empty= size;//empty初始为buffer的大小   
  123.   
  124. }   
  125.   
  126. Viod P( ){   
  127.   
  128.     If(full>0){full--;}       
  129.   
  130. }   
  131.   
  132. Viod V( ){   
  133.   
  134.     If(empty<= object.length){ empty++; }   
  135.   
  136. }   
  137.   
  138. }   
  139.   
  140. Class done{   
  141.   
  142. Public static void main(String[] args){   
  143.   
  144.      Public People people;   
  145.   
  146.      Buffer bf=new Buffer();   
  147.   
  148.      people=new Producer();   
  149.   
  150.      people.produce(bf);   
  151.   
  152. people=new Consumer();   
  153.   
  154. people.consume(bf);   
  155.   
  156. }   
  157.   
  158. }   
分享到:
评论

相关推荐

    OS大作业生产者消费者同步问题的实现

    在操作系统中,生产者-消费者问题是多线程和并发编程中的一个经典问题,它涉及到资源的共享和同步。本大作业旨在让学生理解并熟练运用POSIX提供的同步机制,特别是互斥锁和条件变量,来解决这个问题。以下是相关知识...

    进程同步与互斥 生产者与消费者问题--操作系统大作业

    ### 进程同步与互斥:生产者与消费者问题 #### 一、基础知识与概念解析 **1.1 操作系统的基本概念** 操作系统(Operating System, OS)是计算机系统的核心软件,负责管理和协调计算机硬件资源及软件资源。它通过...

    操作系统作业,生产者消费者,包含源代码

    - **定义生产者与消费者的类:** 实验中通过定义多个生产者与消费者按钮来模拟实际的生产者与消费者行为。 - **利用队列管理缓冲区:** 使用`LinkedList`作为缓冲区,存储由生产者产生的数据,并供消费者取出处理。 ...

    生产者消费者_labview生产者消费者_

    例如,"生产者消费者作业.vi"可能是一个包含以下组件的工作流程: 1. **生产者部分**:这部分的代码负责生成数据。它不断地生产数据,并将其放入队列。为了确保数据安全地添加到队列中,生产者需要使用LabVIEW的...

    操作系统 生产者消费者

    操作系统中的“生产者-消费者”问题是一个经典的多线程同步问题,它主要涉及进程通信、资源管理和并发控制等核心概念。在这个实验中,我们将深入理解这些关键知识点。 首先,我们来了解一下“生产者-消费者”模型。...

    操作系统实验-模拟生产者与消费者问题

    操作系统实验中的“生产者与消费者问题”是一个经典的多线程同步问题,源于计算机科学理论,主要探讨如何在并发环境中有效地管理共享资源。本实验通过使用C#编程语言来模拟这个问题,帮助学生理解线程同步、互斥访问...

    JAVA作业二生产者消费者问题.docx

    生产者消费者问题是多线程编程中的经典问题,它模拟了两个不同类型的线程(生产者和消费者)在共享资源时的交互。在这个Java程序中,生产者和消费者都是通过独立的线程运行,实现了协作式的数据生产和消费。下面将...

    广工操作系统期末课程设计作业-生产者消费者模型(操作系统)

    在操作系统领域,生产者消费者模型是一种经典的进程同步问题,它涉及到多线程编程和资源管理。这个模型通常用于展示如何在并发环境中有效地共享有限的资源。在这个广工操作系统期末课程设计作业中,学生将深入理解...

    c语言生产者消费者问题

    本文档是大学本科课程嵌入式系统课程作业,代码在实验报告里面,c语言实现的生产者消费者问题,使用信号量编程,semaphore,运行环境是Linux ubantu,希望对大家有帮助

    操作系统课程设计生产者与消费者

    本作业通过编写C++程序来实现上述“生产者-消费者”问题的解决方案。程序主要包括以下几个部分: 1. **初始化缓冲区和控制变量**:定义了一个固定大小的缓冲区`g_buffer`,以及一些控制变量如`ProductID`(记录生产...

    操作系统(生产者与消费者)

    `生产者与消费者任务书_邓超.doc`可能是课程作业或者项目指导文档,详细阐述了问题的背景、目标和实现要求。`proAcons.dsp`、`proAcons.dsw`、`proAcons.ncb`、`proAcons.opt`、`proAcons.plg`是Visual Studio项目...

    C语言编写的消费者生产者问题

    大约200行代码,生产者消费者问题,课程设计作品,短小精悍,代码完成,注释非常详细,可用于参考和交作业。

    操作系统生产者消费者问题vb

    操作系统中的生产者-消费者问题是多线程编程中的一个经典模型,它主要用来演示和解决并发控制问题。在VB(Visual Basic)环境中实现这个概念,可以帮助初学者深入理解线程同步和资源共享的概念。 生产者-消费者问题...

    基于C++实现生产者消费者问题(操作系统课程作业)【100012254】

    生产者消费者问题是多线程编程中的经典模型,用于展示并发控制和资源同步。在这个问题中,生产者线程负责创建产品并放入一个有限大小的缓冲区,而消费者线程则从缓冲区取出产品进行消费。当缓冲区满时,生产者必须...

    基于 C++实现的生产者消费者问题(课程设计)

    【作品名称】:基于 C++实现的生产者消费者问题 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【项目介绍】:实验要求 在 Windows...

    生产者与消费者算法模拟课程设计.doc

    系统将模拟多个生产者和消费者之间的交互,根据系统资源的种类和数目、系统作业或进程的对每类资源的最大需求数目、已分配的资源数目等计算是否存在安全序列,并检查系统是否可以继续某个进程资源分配请求。...

    操作系统实验——进程的同步与互斥(读者写者问题)

    以生产者消费者模型为基础,在Windows环境下创建一个控制台进程,在该进程中创建读者写者线程模拟生产者和消费者。写者线程写入数据,然后将数据放置在一个空缓冲区中供读者线程读取。读者线程从缓冲区中获得数据,...

    多个生产者消费者的解决

    一个消费者生产者问题linux的实现,是我们操作系统的小作业

    实现生产者消费者问题_实验报告

    1.内涵代码,是操作系统课程作业,程序简单易于理解 2.由于代码写在报告中,故类的import项目没有写入,需运行时在程序中自行添加

    操作系统课程设计(生产者-消费者,存储管理,虚拟存储器

    1.生产者消费者对缓冲区进行互斥操作。 2.缓冲区大小为10,缓冲区满则不允许生产者生产数据,缓冲区空则不允许消费者消费数据。 3.生产者消费者各循环操作50次。 四、设计思路和采取的方案 1.利用windows提供的API...

Global site tag (gtag.js) - Google Analytics