操作系统实验生产者消费者问题java实现

上传人:新** 文档编号:458497641 上传时间:2023-04-04 格式:DOC 页数:7 大小:146.50KB
返回 下载 相关 举报
操作系统实验生产者消费者问题java实现_第1页
第1页 / 共7页
操作系统实验生产者消费者问题java实现_第2页
第2页 / 共7页
操作系统实验生产者消费者问题java实现_第3页
第3页 / 共7页
操作系统实验生产者消费者问题java实现_第4页
第4页 / 共7页
操作系统实验生产者消费者问题java实现_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《操作系统实验生产者消费者问题java实现》由会员分享,可在线阅读,更多相关《操作系统实验生产者消费者问题java实现(7页珍藏版)》请在金锄头文库上搜索。

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

2、JTextField blank1,blank2,blank3,blank4,blank5; int array = new int5; public PAC() JPanel p1 = new JPanel(new FlowLayout(FlowLayout.CENTER,2,2); p1.add(producer1 = new JButton(生产者1); p1.add(producer2 = new JButton(生产者2); p1.add(producer3 = new JButton(生产者3); JPanel p2 = new JPanel(new FlowLayout(Flow

3、Layout.CENTER,2,2); p2.add(new JLabel(缓冲区); p2.add(blank1 = new JTextField(5); p2.add(blank2 = new JTextField(5); JPanel p3 = new JPanel(new FlowLayout(FlowLayout.CENTER,2,2); p3.add(consumer1 = new JButton(消费者1); p3.add(consumer2 = new JButton(消费者2); p3.add(consumer3 = new JButton(消费者3); JPanel p4

4、= new JPanel(new GridLayout(4,1,2,2); p4.add(new JLabel(阻塞队列); p4.add(blank3 = new JTextField(5); p4.add(blank4 = new JTextField(5); p4.add(blank5 = new JTextField(5); JPanel p5 = new JPanel(new GridLayout(3,1,10,50); p5.add(p1); p5.add(p2); p5.add(p3); JPanel p6 = new JPanel(new BorderLayout(3,3);

5、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(1); ); producer2.addActionListener(new ActionListener() publi

6、c void actionPerformed(ActionEvent e) wh(2); ); producer3.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) wh(3); );consumer1.addActionListener(new ActionListener()public void actionPerformed(ActionEvent e) whh(1););consumer2.addActionListener(new ActionListener()pub

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

8、abled(true);break; case 3:consumer3.setEnabled(true);break; array2 = array3; array3 = array4; array4 = 0; break; else if(arrayi = 0 ) if(array1 = 0) arrayi = n; break; if(array1 != 0) arrayi = n; switch(n) case 1:producer1.setEnabled(false);break; case 2:producer2.setEnabled(false);break; case 3:pro

9、ducer3.setEnabled(false);break; break; blank1.setText( + array0); blank2.setText( + array1); blank3.setText( + array2); blank4.setText( + array3); blank5.setText( + array4); public 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; else for (int k = 2; k 5; k+) if (arrayk = 0) arrayk = -n; switch(n) case 1:consumer1.setEnabled(false);break; case 2:consumer2.setEnabled(false);break; case 3:consumer3.setEnabled(false);br

11、eak; break; blank1.setText( + array0); blank2.setText( + array1); blank3.setText( + array2); blank4.setText( + array3); blank5.setText( + array4); public static void main(String args) PAC frame = new PAC(); frame.pack(); frame.setTitle(生产者与消费者问题实验); frame.setSize(500,300); frame.setLocationRelativeTo(null); frame.setDefaultCloseOpera

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 医学/心理学 > 基础医学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号