Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class Aufgabe_5_1_b
- {
- public int flag0 = 0;
- public int flag1 = 0;
- public int turn = 1;
- public static void main (String[] args)
- {
- Aufgabe_5_1_b aufg51b = new Aufgabe_5_1_b ();
- }
- public Aufgabe_5_1_b ()
- {
- Worker0 work0 = new Worker0 ();
- Worker1 work1 = new Worker1 ();
- }
- public class Worker0 extends Thread
- {
- public Worker0 ()
- {
- start();
- }
- public void run ()
- {
- for (;;)
- {
- System.out.println ("worker0: doing some normal work\n");
- flag0 = 1;
- while (flag1 == 1)
- {
- if (turn != 0)
- {
- flag0 = 0;
- while (turn != 0)
- {
- ;
- }
- flag0 = 1;
- }
- }
- System.out.println ("worker0: doing some critical work\n");
- try
- {
- sleep (2000);
- }
- catch (Exception ex)
- {
- System.out.println ("Failed.");
- }
- System.out.println ("worker0: leaving critical area now\n");
- turn = 1;
- flag0 = 0;
- }
- }
- }
- public class Worker1 extends Thread
- {
- public Worker1 ()
- {
- start();
- }
- public void run ()
- {
- for (;;)
- {
- System.out.println ("worker1: doing some normal work\n");
- flag1 = 1;
- while (flag0 == 1)
- {
- if (turn != 1)
- {
- flag1 = 0;
- while (turn != 1)
- {
- ;
- }
- flag1 = 1;
- }
- }
- System.out.println ("worker1: doing some critical work\n");
- try
- {
- sleep (1000);
- }
- catch (Exception ex)
- {
- System.out.println ("Failed.");
- }
- System.out.println ("worker1: leaving critical area now\n");
- turn = 0;
- flag1 = 0;
- }
- }
- }
- }
Add Comment
Please, Sign In to add comment