Guest User

Untitled

a guest
Feb 21st, 2018
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.61 KB | None | 0 0
  1. public class Aufgabe_5_1_b
  2. {
  3.  
  4. public int flag0 = 0;
  5. public int flag1 = 0;
  6. public int turn = 1;
  7.  
  8. public static void main (String[] args)
  9. {
  10. Aufgabe_5_1_b aufg51b = new Aufgabe_5_1_b ();
  11. }
  12.  
  13. public Aufgabe_5_1_b ()
  14. {
  15. Worker0 work0 = new Worker0 ();
  16. Worker1 work1 = new Worker1 ();
  17. }
  18.  
  19.  
  20. public class Worker0 extends Thread
  21. {
  22. public Worker0 ()
  23. {
  24. start();
  25. }
  26.  
  27. public void run ()
  28. {
  29. for (;;)
  30. {
  31. System.out.println ("worker0: doing some normal work\n");
  32.  
  33. flag0 = 1;
  34. while (flag1 == 1)
  35. {
  36. if (turn != 0)
  37. {
  38. flag0 = 0;
  39. while (turn != 0)
  40. {
  41. ;
  42. }
  43.  
  44. flag0 = 1;
  45. }
  46. }
  47.  
  48. System.out.println ("worker0: doing some critical work\n");
  49.  
  50. try
  51. {
  52. sleep (2000);
  53. }
  54. catch (Exception ex)
  55. {
  56. System.out.println ("Failed.");
  57. }
  58.  
  59. System.out.println ("worker0: leaving critical area now\n");
  60.  
  61. turn = 1;
  62. flag0 = 0;
  63. }
  64. }
  65. }
  66.  
  67. public class Worker1 extends Thread
  68. {
  69. public Worker1 ()
  70. {
  71. start();
  72. }
  73.  
  74. public void run ()
  75. {
  76. for (;;)
  77. {
  78. System.out.println ("worker1: doing some normal work\n");
  79. flag1 = 1;
  80.  
  81. while (flag0 == 1)
  82. {
  83. if (turn != 1)
  84. {
  85. flag1 = 0;
  86. while (turn != 1)
  87. {
  88. ;
  89. }
  90.  
  91. flag1 = 1;
  92. }
  93. }
  94.  
  95. System.out.println ("worker1: doing some critical work\n");
  96.  
  97. try
  98. {
  99. sleep (1000);
  100. }
  101. catch (Exception ex)
  102. {
  103. System.out.println ("Failed.");
  104. }
  105.  
  106. System.out.println ("worker1: leaving critical area now\n");
  107.  
  108. turn = 0;
  109. flag1 = 0;
  110. }
  111. }
  112. }
  113. }
Add Comment
Please, Sign In to add comment