資源簡介
用java來實現銀行家算法和隨機分配算法
采用多線程機制
采用配置文件
采用swing,圖形界面方式
可以說是史上最強大的銀行家算法

代碼片段和文件信息
package?lvkai;
import?java.awt.BorderLayout;
import?java.awt.Container;
import?java.awt.event.ActionEvent;
import?java.awt.event.ActionListener;
import?java.io.IOException;
import?java.util.Properties;
import?javax.swing.JButton;
import?javax.swing.JComboBox;
import?javax.swing.Jframe;
import?javax.swing.JPanel;
import?javax.swing.JScrollPane;
import?javax.swing.JTextArea;
public?class?Main?extends?Jframe?{
Thread[]?t;
private?static?final?long?serialVersionUID?=?1L;
public?static?int?sourceCount;?//?定義系統的資源數
public?static?int?processCount;?//?定義系統的進程數目
static?int[]?available;?//?定義系統可提供的資源數組
static?Process[]?processes;?//?定義系統的進程
private?boolean?start?=?false;?//?當start=true時,程序開始運行
public?static?boolean?safe?=?false;?//?定義是否用銀行家算法,false表示不使用,true表示使用銀行家算法
static?JTextArea?jta?=?new?JTextArea(10?10);
JComboBox?box?=?null;
public?Main()?{
this.settitle(“銀行家算法與隨機分配算法“);
this.setSize(600?400);
this.setLocationRelativeTo(null);
this.setDefaultCloseOperation(Jframe.EXIT_ON_CLOSE);
JPanel?panel?=?new?JPanel();
JButton?button1?=?new?JButton(“運行“);
JButton?button2?=?new?JButton(“停止進程運行“);
button1.addActionListener(new?ActionListener()?{
public?void?actionPerformed(ActionEvent?e)?{
setStart(true);
jta.setText(“程序開始執行o(∩_∩)o...哈哈\n“);
if(0?==?box.getSelectedIndex()){
safe?=?true;
}?else{
safe?=?false;
}
}
});
button2.addActionListener(new?ActionListener(){
public?void?actionPerformed(ActionEvent?e)?{
stopThread();
}
});
String[]?s?=?{“銀行家算法“?“隨機分配算法“};
box?=?new?JComboBox(s);
panel.add(box);
panel.add(button1);
panel.add(button2);
jta.setText(“程序的運行結果就顯示在這里....“);
JScrollPane?sp=new?JScrollPane(jta);
Container?c?=?this.getContentPane();
c.add(panel?BorderLayout.NORTH);
c.add(sp?BorderLayout.CENTER);
this.setVisible(true);
}
//?對字符串進程處理的函數
private?String?trimTheBothSize(String?string)?{
string?=?string.substring(1?string.length()?-?1);
return?string;
}
/**
?*?系統進程初始化
?*/
public?void?init()?{
?
//?定義讀取配置文件的變量
Properties?prop?=?new?Properties();
try?{
prop.load(this.getClass().getClassLoader().getResourceAsStream(
“config/config2.properties“));
}?catch?(IOException?e)?{
e.printStackTrace();
}
//?初始化processCount和processCount
sourceCount?=?Integer.parseInt(prop.getProperty(“source“));
processCount?=?Integer.parseInt(prop.getProperty(“process“));
//?定義processCount個進程,放在進程數組中
processes?=?new?Process[processCount];
for?(int?i?=?0;?i? processes[i]?=?new?Process();
processes[i].id?=?i;
}
//?初始化available,系統可提供的資源向量
available?=?new?int[sourceCount];
String[]?allocationString?=?(prop.getProperty(“available“).substring(1
prop.getProperty(“available“).length()?-?1)).split(““);
for?(int?i?=?0;?i? available[i]?=?Integer.parseInt(al
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????390??2009-04-12?16:34??OSCourseDesign\.project
?????文件????????232??2009-04-12?16:34??OSCourseDesign\.classpath
?????文件????????263??2009-04-16?17:38??OSCourseDesign\bin\config\config.properties
?????文件????????239??2009-04-17?17:32??OSCourseDesign\bin\config\config2.properties
?????文件???????5880??2009-04-18?11:21??OSCourseDesign\bin\lvkai\Main.class
?????文件???????6691??2009-04-18?10:28??OSCourseDesign\bin\lvkai\Process.class
?????文件????????620??2009-04-18?11:21??OSCourseDesign\bin\lvkai\Main$2.class
?????文件????????959??2009-04-18?11:21??OSCourseDesign\bin\lvkai\Main$1.class
?????文件????????263??2009-04-16?17:38??OSCourseDesign\src\config\config.properties
?????文件????????239??2009-04-17?17:32??OSCourseDesign\src\config\config2.properties
?????文件???????5683??2009-04-18?11:21??OSCourseDesign\src\lvkai\Main.java
?????文件???????8927??2009-04-18?10:28??OSCourseDesign\src\lvkai\Process.java
?????目錄??????????0??2009-04-18?11:24??OSCourseDesign\bin\config
?????目錄??????????0??2009-04-18?11:24??OSCourseDesign\bin\lvkai
?????目錄??????????0??2009-04-18?11:24??OSCourseDesign\src\config
?????目錄??????????0??2009-04-18?11:24??OSCourseDesign\src\lvkai
?????目錄??????????0??2009-04-18?11:24??OSCourseDesign\bin
?????目錄??????????0??2009-04-18?11:24??OSCourseDesign\src
?????目錄??????????0??2009-04-18?11:24??OSCourseDesign
-----------?---------??----------?-----??----
????????????????30386????????????????????19
- 上一篇:雙色球JAVA代碼
- 下一篇:android圍棋源碼
評論
共有 條評論