Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class MyProcess extends Thread {
- static String completedProcesses[] = new String[10];
- static int completed = 0;
- String processName;
- String myDependencies[];
- int totalBudget = 300000;
- int myBudget = 0;
- int tempBudget = 0;
- MyProcess(String pname, String md[], int budget) {
- super();
- processName = pname;
- myDependencies = md;
- myBudget = budget;
- }
- // Cambie la salida para que fuera la que se muestra en el ejemplo
- public void run() {
- returnWhenDependenciesMet();
- System.out.println(processName + " started with a budget of $"
- + String.format("%,d", myBudget) + ".00");
- completed();
- }
- void returnWhenDependenciesMet() {
- boolean finished = false;
- if (myDependencies.length > 0) {
- while (!finished) {
- finished = true;
- for (int i = 0; i < myDependencies.length; i++) {
- if (!isInFinished(myDependencies[i])) {
- finished = false;
- }
- }
- }
- }
- }
- boolean isInFinished(String p) {
- boolean finished = false;
- for (int i = 0; i < completedProcesses.length; i++) {
- if (p.equals(completedProcesses[i])) {
- finished = true;
- }
- }
- return finished;
- }
- // Cambie la salida para que fuera la que se muestra en el ejemplo
- synchronized void completed() {
- totalBudget = totalBudget - myBudget;
- tempBudget = totalBudget;
- System.out.printf(processName + " finished" +
- "\n Available budget: $" + String.format("%,d", totalBudget) + ".00"+ "\n");
- completed++;
- completedProcesses[completed - 1] = processName;
- }
- }
- public class KerryLorenzoProg1 {
- public static void main(String[] args) {
- MyProcess p1 = new MyProcess("P1", new String[] { "P6" }, 10000);//
- MyProcess p2 = new MyProcess("P2", new String[] { "P4" }, 50000);//
- MyProcess p3 = new MyProcess("P3", new String[] { "P4", "P5" }, 30000);//
- MyProcess p4 = new MyProcess("P4", new String[] { "P6", "P7" }, 20000);//
- MyProcess p5 = new MyProcess("P5", new String[] { "P9" }, 90000);//
- MyProcess p6 = new MyProcess("P6", new String[] { "P8" }, 25000);//
- MyProcess p7 = new MyProcess("P7", new String[] { "P8" }, 20000);//
- MyProcess p8 = new MyProcess("P8", new String[] {}, 15000);
- MyProcess p9 = new MyProcess("P9", new String[] {}, 40000);
- p1.start();
- p2.start();
- p3.start();
- p4.start();
- p5.start();
- p6.start();
- p7.start();
- p8.start();
- p9.start();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement