The Java Program: Synch1.java

  1 // Synch1.java -- synchronization (from Handbook)
  2 
  3 class Callme {
  4     synchronized void call(String msg) {
  5         System.out.print("[" + msg);
  6         try {
  7            Thread.sleep(1000);
  8         } catch (Exception e) {
  9         }
 10         System.out.println("]");
 11     }
 12 }
 13 
 14 class Caller implements Runnable {
 15     String msg;
 16     Callme target;
 17     public Caller(Callme t, String s) {
 18         target = t;
 19         msg = s;
 20         new Thread(this).start();
 21     }
 22     public void run() {
 23         target.call(msg);
 24     }
 25 }
 26 
 27 class Synch1 {
 28     public static void main(String args[]) {
 29         Callme target = new Callme();
 30         new Caller (target, "Hello");
 31         new Caller (target, "Synchronized");
 32         new Caller (target, "World");
 33     }
 34 }