Assignment Write a multithreaded Java program that uses eith
Solution
public class baboon{
                 public static boolean eastLock = false;
                 public static boolean westLock = false;
                 public static int onBranch = 0;
                 public static void main(String [] args)
                 {
                                 BaboonEast bEast = new BaboonEast();
                                 BaboonWest bWest = new BaboonWest();
                                                                
                                 for (int i=1; i<=10; i++)
                                 {
                                                 new Thread(bEast, \"E: \"+i).start();
                                                 new Thread(bWest, \"W: \"+i).start();
                                                
                                                 //bEast.start();
                                 }//for
                                
                 }//main
 }//class
                
 class BaboonEast extends Thread
 {
                 public void run()
                 {
                                 while (baboon.westLock == true)
                                 {
                                                 System.out.println(Thread.currentThread().getName() + \" waiting\");
                                                 try
                                                 {
                                                                 sleep(50);
                                                 } catch (InterruptedException ex) {}
                                 }//while
                                
                                 //baboon.eastLock = true; //stops west baboons entering
                                 baboon.onBranch ++;
                                 baboon.westLock = true;
                                 baboon.eastLock = true;
                                 System.out.println(\"Baboon \" + Thread.currentThread().getName() + \" is entering\");
                                 try
                                 {
                                                 sleep(100);
                                 } catch (InterruptedException ex) {}
                                 baboon.onBranch --;
                                 System.out.println (\"Baboon \" + Thread.currentThread().getName() + \" has crossed\");
                                 if (baboon.onBranch <= 0)
                                 {
                                                 baboon.eastLock = false;
                                                
                                                
                                                
                                                 baboon.westLock = false;
                                                
                                                
                                 }
                                 //System.out.println(baboon.onBranch);
                 }//run
 }//class
                
 class BaboonWest extends Thread
 {
                 public void run()
                 {
                                 while (baboon.eastLock == true)
                                 {
                                                 System.out.println(Thread.currentThread().getName() + \" waiting\");
                                                 try
                                                 {
                                                                 sleep(50);
                                                 } catch (InterruptedException ex) {}
                                 }//while
                                
                                 baboon.westLock = true; //stops east baboons entering
                                 baboon.onBranch ++;
                                 System.out.println(\"Baboon \" + Thread.currentThread().getName() + \" is entering\");
                                 baboon.westLock = true;
                                 baboon.eastLock = true;
                                 try
                                 {
                                                 sleep(100);
                                 } catch (InterruptedException ex) {}
                                
                                 baboon.onBranch --;
                                 System.out.println (\"Baboon \" + Thread.currentThread().getName() + \" has crossed\");
                                 if (baboon.onBranch <= 0)
                                 {
                                                 baboon.westLock = false;
                                                
                                                
                                                
                                                                 baboon.eastLock = false;
                                                
                                                
                                 }
                                 //System.out.println(baboon.onBranch);
                 }//run
 }//class





