【正文】
并將信息顯示顯示到界面中。4 / 15四 程序設(shè)計(jì)與實(shí)現(xiàn) 程序流程圖YNNNY執(zhí)行的進(jìn)程根據(jù)設(shè)備的物理名調(diào)用設(shè)備設(shè)備 a 是否空閑設(shè)備 b 是否空閑設(shè)備 c 是否空閑進(jìn)程結(jié)束,回收設(shè)備Y將該進(jìn)程放到設(shè)備 a 的阻塞隊(duì)列中將該進(jìn)程放到設(shè)備 b 的阻塞隊(duì)列中將該進(jìn)程放到設(shè)備 c 的阻塞隊(duì)列中圖 415 / 15 基本思想進(jìn)程調(diào)用設(shè)備。再調(diào)用 B 類設(shè)備, B 類設(shè)備一共有兩個,如果有空閑的設(shè)備,則進(jìn)程就可調(diào)用;否則將進(jìn)程阻塞到設(shè)備 B 的阻塞隊(duì)列中,等待設(shè)備,等到 B 類設(shè)備有空閑設(shè)備時(shí),就喚醒該進(jìn)程,在斷點(diǎn)處繼續(xù)進(jìn)行程序。 定義的公共變量或數(shù)據(jù)結(jié)構(gòu)Anum,Bnum,Cnum 分別表示設(shè)備 A,B,C 空閑數(shù)目public enum DeviceType 枚舉型的數(shù)據(jù)類型 列舉出三種設(shè)備public struct DeviceTable 定義一個設(shè)備表的結(jié)構(gòu)體 public class Device 設(shè)備類public bool JudgeDevice(DeviceType type) 檢查類型為 type 的設(shè)備是否可用public int Allocate(DeviceType type) 分配設(shè)備,返回第幾個設(shè)備被占用public void DeAllocate(DeviceType type, int a) 回收設(shè)備 實(shí)驗(yàn)部分代碼namespace WindowsApplication2{ public partial class Form1 : Form { public static int Anum = 3, Bnum = 2, Cnum = 1。 public int total。 //0——空閑,1——占用 public DeviceTable(DeviceType type, int total) //定義一個構(gòu)造函數(shù)6 / 15 { = total。 useState = new int[total]。 i total。 } } } public class Device { private DeviceTable[] table = new DeviceTable[3]。 public Device() { InitDevice()。 table[1] = new DeviceTable(, 2)。 } // /////////////////檢查類型為type的設(shè)備是否可用////////////////////// // public bool JudgeDevice(DeviceType type) { bool str = false。 } break。 } break。 } break。 } // ////////////分配設(shè)備,返回第幾個設(shè)備被占用//////////////////////// // public int Allocate(DeviceType type) { int k = 0。 for (int i = 0。 i++) { if (table[0].useState[i] == 0)