class Callme
{
synchronized void call(String msg)
{
[Link]("[" + msg);
try
{
[Link](1000);
}
catch(InterruptedException e)
{
[Link]("Interrupted");
}
[Link]("]");
}
}
class Caller implements Runnable
{
String msg;
Callme target;
Thread t;
public Caller(Callme targ, String s)
{
target = targ;
msg = s;
t = new Thread(this);
[Link]();
}
public void run()
{
[Link](msg);//Synchronized Method
}
}
class Synch {
public static void main(String args[])
{
Callme target = new Callme();
Caller ob1 = new Caller(target,
"Hello");
Caller ob2 = new Caller(target,
"Synchronized");
Caller ob3 = new Caller(target,
"World");
// wait for threads to end
try {
[Link]();
[Link]();
[Link]();
} catch(InterruptedException e)
{
[Link]("Interrupted");
}
}
}