资源简介
JAVA管程解决哲学家就餐问题 流程图 截图 运行结果 JAVA代码 很好的东西
代码片段和文件信息
import java.awt.GridLayout;
import java.awt.Menu;
import java.awt.MenuBar;
import java.awt.MenuItem;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
class Monitor{
public int philStates[]=new int[5];
public boolean chopsticks[]=new boolean[5];
public deadlock dp;
public Monitor(deadlock dp){
this.dp=dp;
int i;
for(i=0;i<5;i++){
philStates[i]=0;
chopsticks[i]=false;
}
}
public synchronized void pickupL(int i){
while(chopsticks[i]){
try{wait();}catch(InterruptedException e){}
}
chopsticks[i]=true;
philStates[i]=1;
dp.jl[i].setIcon(dp.pic[philStates[i]]);
dp.jl[i].setText(“hungry..“);
}
public synchronized void pickupR(int i){
while(chopsticks[(i+1)%5]){
try{wait();}catch(InterruptedException e){}
}
chopsticks[(i+1)%5]=true;
philStates[i]=2;
dp.jl[i].setIcon(dp.pic[philStates[i]]);
dp.jl[i].setText(“eating..“);
}
public synchronized void putdown(int i){
chopsticks[i]=false;
chopsticks[(i+1)%5]=false;
philStates[i]=0;
dp.jl[i].setIcon(dp.pic[philStates[i]]);
dp.jl[i].setText(“thinking..“);
notify();
}
}
public class deadlock extends Jframe{
public JLabel jl[]=new JLabel[5];
public String[] name={“Philosopher_1““Philosopher_2““Philosopher_3““Philosopher_4““Philosopher_5“};
public ImageIcon pic[]=new ImageIcon[3];
public Monitor m;
public philosopher phil[];
public deadlock(){
super(“DinerPhilosopher Fengfan“);
pic[0]=new ImageIcon(getClass().getResource(“pic/sikao.jpg“));
pic[1]=new ImageIcon(getClass().getResource(“pic/jie.jpg“));
pic[2]=new ImageIcon(getClass().getResource(“pic/chifan.jpg“));
for(int i=0;i<5;i++){
jl[i]=new JLabel(name[i]pic[0]JLabel.CENTER);
jl[i].setVerticalTextPosition(JLabel.BOTTOM);
jl[i].setHorizontalTextPosition(JLabel.CENTER);
}
setSize(600 500);
setLocationRelativeTo(null);
setDefaultCloseOperation(Jframe.EXIT_ON_CLOSE);
m=new Monitor(this);
phil=new philosopher[5];
for(int i=0;i<5;i++)phil[i]=new philosopher(im);
MenuBar mb=new MenuBar();
Menu menu1=new Menu(“ON/OFF“);
MenuItem mi1=new MenuItem(“ON“);
mi1.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
for(int i=0;i<5;i++)deadlock.this.phil[i].start();
}
});
MenuItem mi2=new MenuItem(“OFF“);
mi2.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
for(int i=0;i<5;i++)deadlock.this.phil[i].interrupt();
}
});
MenuItem mi3=new MenuItem(“EXIT“);
mi3.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
System.exit(0);
}
});
menu1.add(mi1);
menu1.add(mi2);
menu1.add(mi3);
Menu menu2=new Menu(“NOTE“);
MenuItem mi4=new MenuItem(“Readme“);
mi4.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
JOptionPane.showMessageDialog(null“It is n
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2012-03-05 14:08 JAVA管程解决哲学家就餐问题\
目录 0 2012-03-05 14:07 JAVA管程解决哲学家就餐问题\dp\
文件 586 2011-12-28 11:27 JAVA管程解决哲学家就餐问题\dp\deadlock$1.class
文件 590 2011-12-28 11:27 JAVA管程解决哲学家就餐问题\dp\deadlock$2.class
文件 511 2011-12-28 11:27 JAVA管程解决哲学家就餐问题\dp\deadlock$3.class
文件 638 2011-12-28 11:27 JAVA管程解决哲学家就餐问题\dp\deadlock$4.class
文件 2924 2011-12-28 11:27 JAVA管程解决哲学家就餐问题\dp\deadlock.class
文件 4105 2011-12-28 11:22 JAVA管程解决哲学家就餐问题\dp\deadlock.java
文件 631 2011-12-28 11:25 JAVA管程解决哲学家就餐问题\dp\DinersPhilosopher$1.class
文件 635 2011-12-28 11:25 JAVA管程解决哲学家就餐问题\dp\DinersPhilosopher$2.class
文件 556 2011-12-28 11:25 JAVA管程解决哲学家就餐问题\dp\DinersPhilosopher$3.class
文件 683 2011-12-28 11:25 JAVA管程解决哲学家就餐问题\dp\DinersPhilosopher$4.class
文件 2987 2011-12-28 11:25 JAVA管程解决哲学家就餐问题\dp\DinersPhilosopher.class
文件 3962 2011-12-28 11:15 JAVA管程解决哲学家就餐问题\dp\DinersPhilosopher.java
文件 1258 2011-12-28 11:27 JAVA管程解决哲学家就餐问题\dp\Monitor.class
目录 0 2012-03-05 14:07 JAVA管程解决哲学家就餐问题\dp\pic\
文件 21871 2011-12-28 09:59 JAVA管程解决哲学家就餐问题\dp\pic\chifan.jpg
文件 18838 2011-12-28 10:00 JAVA管程解决哲学家就餐问题\dp\pic\jie.jpg
文件 18023 2011-12-28 10:00 JAVA管程解决哲学家就餐问题\dp\pic\sikao.jpg
文件 20568 2011-12-28 10:00 JAVA管程解决哲学家就餐问题\dp\pic\zhuozi.jpg
文件 258048 2012-03-05 14:08 JAVA管程解决哲学家就餐问题\哲学家就餐以及系统调用.wps
- 上一篇:客户信息管理系统
- 下一篇:java实现霍夫曼(huffman)树的压缩和解压缩
相关资源
- java实现霍夫曼(huffman)树的压缩和解
- 客户信息管理系统
- java web开发简单留言板
- java新手8个小项目
- Java实现TXT文件转图片
- java图像处理方法:灰度化,二值化,
-
xm
l.bind.jar包 - ssd8 exam1 代理服务器 java
- fastjson alibaba jar包
- eclipse2019 mac版
- Java基础 用数组写的学生管理系统
- 试题管理系统 JAVA
- java页面置换算法的模拟实现
- java噪声函数库
- jacob-1.19及使用说明
- Java实现显示进度条
- 旅游指南系统完整简单的java编写
- echarts对应后台java类的工具jar
- java代码实现上传视频并截图
- asm3.3相关jar包集合
- 基于java的中国象棋人机对弈程序
- spring-web-2.5.6.jar
- Dao类实现JAVA连接数据库及相应的增删
- Java开发的——网络、单机二合一——
- 在线考试系统完整代码,JAVA源码
- 贪吃蛇网络版 java代码
- java文本查重工具类封装
- 图书管理系统java+oracle
- 实用JAVA软件工程课程设计
- Java 3D必备dll
评论
共有 条评论