Advertisement
Guest User

Untitled

a guest
Nov 15th, 2018
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.37 KB | None | 0 0
  1. class MyProcess extends Thread {
  2. static String completedProcesses[] = new String[10];
  3. static int completed = 0;
  4. String processName;
  5. String myDependencies[];
  6. int totalBudget = 300000;
  7. int myBudget = 0;
  8. int tempBudget = 0;
  9.  
  10. MyProcess(String pname, String md[], int budget) {
  11. super();
  12. processName = pname;
  13. myDependencies = md;
  14. myBudget = budget;
  15. }
  16. // Cambie la salida para que fuera la que se muestra en el ejemplo
  17. public void run() {
  18.  
  19. returnWhenDependenciesMet();
  20. System.out.println(processName + " started with a budget of $"
  21. + String.format("%,d", myBudget) + ".00");
  22. completed();
  23.  
  24. }
  25.  
  26. void returnWhenDependenciesMet() {
  27. boolean finished = false;
  28. if (myDependencies.length > 0) {
  29. while (!finished) {
  30. finished = true;
  31.  
  32. for (int i = 0; i < myDependencies.length; i++) {
  33. if (!isInFinished(myDependencies[i])) {
  34. finished = false;
  35. }
  36. }
  37. }
  38. }
  39. }
  40.  
  41. boolean isInFinished(String p) {
  42. boolean finished = false;
  43. for (int i = 0; i < completedProcesses.length; i++) {
  44. if (p.equals(completedProcesses[i])) {
  45. finished = true;
  46. }
  47. }
  48. return finished;
  49. }
  50. // Cambie la salida para que fuera la que se muestra en el ejemplo
  51. synchronized void completed() {
  52. totalBudget = totalBudget - myBudget;
  53. tempBudget = totalBudget;
  54. System.out.printf(processName + " finished" +
  55. "\n Available budget: $" + String.format("%,d", totalBudget) + ".00"+ "\n");
  56.  
  57. completed++;
  58. completedProcesses[completed - 1] = processName;
  59.  
  60. }
  61. }
  62.  
  63. public class KerryLorenzoProg1 {
  64. public static void main(String[] args) {
  65. MyProcess p1 = new MyProcess("P1", new String[] { "P6" }, 10000);//
  66. MyProcess p2 = new MyProcess("P2", new String[] { "P4" }, 50000);//
  67. MyProcess p3 = new MyProcess("P3", new String[] { "P4", "P5" }, 30000);//
  68. MyProcess p4 = new MyProcess("P4", new String[] { "P6", "P7" }, 20000);//
  69. MyProcess p5 = new MyProcess("P5", new String[] { "P9" }, 90000);//
  70. MyProcess p6 = new MyProcess("P6", new String[] { "P8" }, 25000);//
  71. MyProcess p7 = new MyProcess("P7", new String[] { "P8" }, 20000);//
  72. MyProcess p8 = new MyProcess("P8", new String[] {}, 15000);
  73. MyProcess p9 = new MyProcess("P9", new String[] {}, 40000);
  74.  
  75. p1.start();
  76. p2.start();
  77. p3.start();
  78. p4.start();
  79. p5.start();
  80. p6.start();
  81. p7.start();
  82. p8.start();
  83. p9.start();
  84. }
  85. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement