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