/** * 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(); } }