资源简介
资源有三种,线程数为5,适合各种课程设计作业和参考学习
代码片段和文件信息
package com.cch.entity;
import java.util.Scanner;
public class Banker {
static int available[] = new int[3]; // 资源数
static int max[][] = new int[5][3]; // 最大需求
static int allocation[][] = new int[5][3]; // 分配
static int need[][] = new int[5][3]; // 需求
static int request[] = new int[3]; // 存放请求
Scanner scanner = new Scanner(System.in);
int thread; // 线程号
// 初始化
public void getData() {
System.out.println(“请输入ABC三类资源的数目:“);
// 输入ABC三类资源数量
for (int i = 0; i < 3; i++) {
available[i] = scanner.nextInt();
}
// 输入进程对三类资源的最大需求
for (int i = 0; i < 5; i++) {
System.out.println(“请输入进程“ + i + “对ABC三类资源的最大需求“);
for (int j = 0; j < 3; j++) {
max[i][j] = scanner.nextInt();
}
}
// 输入进程分配的三类资源数
for (int i = 0; i < 5; i++) {
System.out.println(“请输入进程“ + i + “已分配的ABC三类资源数“);
for (int j = 0; j < 3; j++) {
allocation[i][j] = scanner.nextInt();
}
}
// 计算进程还需要的三类资源数
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 3; j++) {
need[i][j] = max[i][j] - allocation[i][j];
}
}
// 重新计算available
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 5; j++) {
available[i] -= allocation[j][i];
}
}
}
// 用户输入要申请资源的线程和申请的资源,并进行判断
public void getThread() {
System.out.println(“请输入申请资源的线程“);
int thread = scanner.nextInt(); // 线程
if (thread < 0 || thread > 4) {
System.out.println(“该线程不存在请重新输入“);
getThread();
} else {
this.thread = thread;
System.out.println(“请输入申请的资源(三种,若某种资源不申请则填0)“);
for (int i = 0; i < 3; i++) {
request[i] = scanner.nextInt();
}
if (request[0] > need[thread][0] || request[1] > need[thread][1] || request[2] > need[thread][2]) {
System.out.println(thread + “线程申请的资源超出其需要的资源,请重新输入“);
getThread();
} else {
if (request[0] > available[0] || request[1] > available[1] || request[2] > available[2]) {
System.out.println(thread + “线程申请的资源大于系统资源,请重新输入“);
getThread();
}
}
changeData(thread);
if (check(thread)) {
getThread();
} else {
recoverData(thread);
getThread();
}
}
}
// thread线程请求响应后,试探性分配资源
public
相关资源
- java串口通信全套完整代码-导入eclip
- jsonarray所必需的6个jar包.rar
- 三角网构TIN生成算法,Java语言实现
- java代码编写将excel数据导入到mysql数据
- Java写的cmm词法分析器源代码及javacc学
- JAVA JSP公司财务管理系统 源代码 论文
- JSP+MYSQL旅行社管理信息系统
- 推荐算法的JAVA实现
- 基于Java的酒店管理系统源码(毕业设
- java-图片识别 图片比较
- android毕业设计
- java23种设计模式+23个实例demo
- java Socket发送/接受报文
- JAVA828436
- java界面美化 提供多套皮肤直接使用
- 在线聊天系统(java代码)
- 基于Java的图书管理系统807185
- java中实现将页面数据导入Excel中
- java 企业销售管理系统
- java做的聊天系统(包括正规课程设计
- Java编写的qq聊天室
- 商店商品管理系统 JAVA写的 有界面
- JAVA开发聊天室程序
- 在linux系统下用java执行系统命令实例
- java期末考试试题两套(答案) 选择(
- JAVA3D编程示例(建模、交互)
- Java 文件加密传输
- java做的房产管理系统
- 基于jsp的bbs论坛 非常详细
- [免费]java实现有障碍物的贪吃蛇游戏
评论
共有 条评论