/*
* Компилиpовать: javac synch.java
* Запускать: java synch
* JDK 1.1.5
*/
/*
если бы процессы исполнялись не одновременно мы получили бы:
[Hello]
[Synchronized]
[World]
*/
class Callme {
Thread Thread;
void call(String msg) { // получаем msg
System.out.println("["+msg); // начинаем выполнение
try { Thread.sleep(1000); } catch(Exception e) {};
// пока спим другие вызовы действуют
System.out.println("]"); // конец выполнения
}
}
class Caller implements Runnable {
String msg;
Callme target;
public Caller(Callme t, String s) {
target=t;
msg=s;
new Thread(this).start();
}
public void run() {
target.call(msg);
}
}
class synch {
public static void main(String args[]) {
Callme target = new Callme();
new Caller(target, "Hello"); // вызвать Caller с параметром "Hello"
new Caller(target, "Synchronized");
new Caller(target, "World");
}
}