銀行家算法是一種最有代表性的避免死鎖的算法。在避免死鎖方法中允許進程動態地申請資源,但系統在進行資源分配之前,應先計算此次分配資源的安全性,若分配不會導致系統進入不安全狀態,則分配,否則等待。
package com.zc.manythread;import javax.swing.JOptionPane;/*一共有5個進程需要請求資源,有3類資源*/public class Bank { // 每個進程所需要的最大資源數 public static int MAX[][] = { { 7, 5, 3 }, { 3, 2, 2 }, { 9, 0, 2 }, { 2, 2, 2 }, { 4, 3, 3 } }; // 系統擁有的初始資源數 public static int AVAILABLE[] = { 10, 5, 7 }; // 系統已給每個進程分配的資源數 public static int ALLOCATION[][] = { { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 } }; // 每個進程還需要的資源數 public static int NEED[][] = { { 7, 5, 3 }, { 3, 2, 2 }, { 9, 0, 2 }, { 2, 2, 2 }, { 4, 3, 3 } }; // 每次申請的資源數 public static int Request[] = { 0, 0, 0 }; // 進程數與資源數 public static int M = 5, N = 3; int FALSE = 0; int TRUE = 1; public void showdata() { int i, j; System.out.
新聞熱點
疑難解答