[java]代码库
/**
* java 同步方法的使用,防止多线程同时执行方法。
*
* synchronized方法加锁,不管哪一个线程运行到这个方法时,都要检查有没有其它线程正在用这个方法,
* 有的话要等正在使用synchronized方法的线程运行完这个方法后再运行此线程,没有的话,直接运行。
*/
class Callme {
synchronized void call(String msg) {
System.out.print("[" + msg);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("]");
}
}
class caller implements Runnable {
String msg;
Callme target;
public caller(Callme t, String s) {
target = t;
msg = s;
}
public void run() {
target.call(msg);
}
}
class Synch1 {
public static void main(String args[]) {
Callme target = new Callme();
new caller(target, "Hello").run();
new caller(target, "Synchronized").run();
new caller(target, "World").run();
}
}