資源簡介
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)樹的壓縮和解壓縮
評論
共有 條評論