操作系统实验(生产者消费者问题java实现)_第1页
操作系统实验(生产者消费者问题java实现)_第2页
操作系统实验(生产者消费者问题java实现)_第3页
操作系统实验(生产者消费者问题java实现)_第4页
操作系统实验(生产者消费者问题java实现)_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、操作系统实验(生产者消费者问题java实现)操作系统实验(生产者消费者问题java实现)一实验目的1深刻理解进程同步的概念。2掌握经典同步问题,生产者一一消费者问题。二实验设备PC机三实验内容在Java开发平台模拟经典进程同步问题,生产者一一消费者问题。四程序的主要代码import javaawt*;import javax swing *;import javaawt.event*;public class PAC extends JFrameprotected JButtonproducerl, producer2, producer3, consumerl, consumer2, con

2、sumer3: protected JTextField blankl, blank2, blank3, blankd, blanks; int J array = new int5:public PAC() JPanel pl = new JPanel(new FlowLayout(FlowLayout. CENTER, 2, 2);pl. add(producerl = new JButtonC生产者 1);pl. add (producer2 = new JButton C生产者 2);pl. add (producer3 = new JButton (z,生产者 3);JPanel p

3、2 = new JPanel(new FlowLayout(FlowLayout. CENTER, 2, 2); p2. add (new JLabel (缓冲区);p2add(blankl = new JTextField(5):p2. add(blank2 = new JTextField(5);JPanel p3 = new JPanel(new FlowLayout(FlowLayout. CENTER, 2, 2);p3. add (consumer 1 = new JButtonC消费者 1);p3. add(consumer2 = new JButton(z,消费者 2);p3.

4、 add (consumer3 = new JButton(z,消费者 3);JPanel p4 = new JPanel(new GridLayout(4, 1, 2, 2);p4. add (new JLabel (阻塞队列);p4add(blank3 = new JTextField(5):p4 add (blank*! = new JTextField(5):p4add(blanks = new JTextField(o):JPanel po = new JPanel(new GridLayout(3, 1, 10, 50);p5 add (pl);p3 add(p2);p3 add(

5、p3);JPanel p6 = new JPanel(new BorderLayout(3, 3):p6 add(p4, BorderLayout EAST);p6 add(p5, BorderLayout CENTER);setLayout(new FlowLayout(FlowLayout. CENTER, 10, 20);this getContentPane() add(p6);producer1. addActionListener(new ActionListener()public void actionPerformed(ActionEvent e)wh;);producer2

6、. addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) wh;);producer3. addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) wh;);consumer1. addActionListener(new ActionListener()public void actionPerformed(ActionEvent e)whh ;);consumer2. addA

7、ctionListener(new ActionListener()public void actionPerformed(ActionEvent e)whh ;);consumer3 addActionListener (new ActionListener ()public void actionPerformed(ActionEvent e)whh ;);public void wh(int n)for(int i = 0;i 5; i+) if(arrayi = 0 & array2 0)switch(-array2) case 1:consumer1. setEnabled(true

8、);break;case 2:consumer2 setEnabled(true);break;case 3:consumer3 setEnabled(true):break;array2 = array3;array3 = array4;array4 = 0;else if (array i = 0 ) if(array1 = 0) arrayiZ = n;break;if(arrayEl != 0) arrayiZ = n;switch(n) case 1:producer1 setEnabled(false);break;case 2:producer2 setEnabled(false

9、):break;case 3:producer3 setEnabled(false);break; break;arrayE0);array1);array2);array3);array4);blank1 setText Cblank2 setText Cblank3 setText Cblank4 setText Cblank5 setText Cpublic void whh(int n)if (array0 != 0)switch(array2)case 1:producer1. setEnabled(true);break;case 2:producer2 setEnabled(tr

10、ue);break;case 3:producer3 setEnabled(true):break;for (int k = 0; k 4; k卄)arrayk = arrayk + 1;array4 = 0;elsefor (int k = 2; k 5; M+)if (arrayk = 0)arrayk = -n;switch(n) case 1:consumer1 setEnabled(false);break; case 2:consumer2 setEnabled(false);break; case 3:consumer3. setEnabled(false);break; bla

11、nk1 setText Cblank2 setText Cblank3 setText Cblank4. setText CarrayEO);array1);array2);array3);array4);public static voidmain (StringE. args)blank5 setText CPAC frame = new PAC ();frame pack();frame. setTitleC生产者与消费者问题实验。;frame. setSize(500, 300);frame setLocationRelativeTo(null);frame setDefaultCloseOperation(JFrame EXIT_0N_CL0SE);frame setVisible(true);/*生产者1、2、3分别生产数字1、2、3;消费者1、2、3的消费请求进入阻 塞队列后分别

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论