代做c# 编程、asp.net c# 设计代写、帮做asp.net c#、asp.net c#帮做、代写asp.net c#

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace 银行家算法{class MainClass{public class Banker{static int[] available = new int[4]; //资源数 static int[,] max = new int[5, 4]; //最大资源需求 static int[,] allocation = new int[5, 4]; //已经分配的资源 static int[,] need = new int[5, 4]; //还需要的资源 static int[] request = new int[4]; //存放请求 int thread; //线程号 //初始化各类的值 public void getData(){Console.Write(&"请输入A,B,C,D四类资源的数目:&");//输入A,B,C三类资源数量 for (int i = 0; i 4){Console.WriteLine(&"该线程不存在,请重新输入&");getThread();}else{this.thread = thread;Console.WriteLine(&"请输入申请的资源(0-4)&");for (int i = 0; i need[thread, 0] || request[1] > need[thread, 1] || request[2] > need[thread, 2] || request[3] > need[thread, 3]){Console.WriteLine(thread + &"线程申请的资源超出其需要的资源,请重新输入&");getThread();}else{if (request[0] > available[0] || request[1] > available[1] || request[2] > available[2] || request[3] > available[3]){Console.WriteLine(thread + &"线程申请的资源大于系统资源,请重新输入&");getThread();}}changeData(thread);if (check(thread)){getThread();}else{recoverData(thread);getThread();}}}//thread线程请求响应后,试探性分配资源 public void changeData(int thread){for (int i = 0; i work[i]){//(need[j,i]+&"*&"+i+work[i]); j++;break;}else if (i == 2){for (int m = 0; m {work[m] += allocation[j, m];}finish[j] = true;queue[k] = j;k++;j = 0; //从最小线程再开始判断 }}}//判断是否都属于安全状态 for (int p = 0; p {if (finish[p] == false){Console.WriteLine(&"系统不安全,资源申请失败&");return false;}}Console.WriteLine(&"资源申请成功,安全队列为:&");for (int q = 0; q {Console.WriteLine(queue[q]);}return true;}//输出need和available public void showData(){Console.WriteLine(&"need&");for (int i = 0; i {for (int j = 0; j {Console.WriteLine(need[i, j] + &" &");}}Console.WriteLine(&"available&");for (int j = 0; j {Console.WriteLine(available[j] + &" &");}}static void Main(string[] args){Banker bk = new Banker();bk.getData();bk.getThread();}}}}& 转自:http://ass.3daixie.com/2018061718502341.html

你可能感兴趣的:(代做c# 编程、asp.net c# 设计代写、帮做asp.net c#、asp.net c#帮做、代写asp.net c#)