java 生产者消费者-生产和消费的关系是
本文档为精品文档,如对你有帮助请下载支持,如有问题请及时沟通,谢谢支持!本文档为精品文档,如对你有帮助请下载支持,如有问题请及时沟通java 生产者消费者,谢谢支持! PAGE PAGE #操作系统课程设计(一 -号黑体加粗)用多进程同步方法解决生产者-消费者问题(小二黑体加粗)院系:班级:学号:姓名:同组者:时间:目录(小二黑体加粗)一、题目 一、题目 错误!未定义书签错误!未定义书签 错误!未定义书签 错误!未定义书签 错误!未定义书签 错误!未定义书签 错误!未定义书签 错误!未定义书签 错误!未定义书签 错误!未定义书签错误!未定义书签 错误!未定义书签 错误!未定义书签 错误!未定义书签 错误!未定义书签 错误!未定义书签 错误!未定义书签 错误!未定义书签 错误!未定义书签二、设计目的:三、总体设计思想概述:四、说明:五、设计要求:六、设计方案:七、流程图:八、运行结果九、源程序十、总结十一、参考文献 错误!未定义书签。一、题目:(标题2,即三号黑体加粗)用多进程同步方法解决生产者 -消费者问题。二、设计目的:通过研究Linux的进程机制和信号量实现生产者消费者问题的并发控制。三、总体设计思想概述:1、生产者一消费者问题是一种同步问题的抽象描述。
2、 计算机系统中的每个进程都可以消费或生产某类资源。当系统中某一进程使用某一 资源时,可以看作是消耗,且该进程称为消费者。3、而当某个进程释放资源时java 生产者消费者,则它就相当一个生产者。四、说明:有界缓冲区内设有 20个存储单元,放入/取出的数据项设定为 1-20这20个整型数。五、设计要求:1、每个生产者和消费者对有界缓冲区进行操作后,即时显示有界缓冲区的全部内容,当前指针位置和生产者/消费者进程的标识符。2、生产者和消费者各有两个以上。3、多个生产者或多个消费者之间须有共享对缓冲区进行操作的函数代码。六、设计方案:1、用Java编写程序,运行环境为 Eclipse。2、抽象化生产者与消费者之间的关系,即用线程来产生数据或者使用数据,定义的类有:、public class BufferLock、classProducer、classConsumer3、然后继承Thread (线程)来实现多个生产者与多个消费者之间的关系:(1 )、classProducerextendsThread(2 )、classConsumerextendsThread4、还需要有一个缓冲区来存放数据,即通过缓冲区把生产者和消费者联系起来。
5、 synchronized关键字修饰方法,实现线程同步。七、流程图:八、运行结果1、截图一:2、截图二:3、截图三:九、源程序public class BufferLock{privateint value ;privateboolean isEmpty =true ;publicsynchroni zedvoid put( int{while (! isEmpty )try{this .wait();塞自己}catch (InterruptedException e) {} value = i;isEmpty = false ;n otifyAII();}publicsynchroni zedint get(){while ( isEmpty )try{this .wait();}catch (InterruptedException e) {} isEmpty = true ;n otifyAII();returnvalue ;}}class Producerexte nds Thread{private BufferLock buffer ;public Producer(BufferLock buffer){this . buffer = buffer;}public void run(){for ( int i=1; i