- /**
- * 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();
- }
- }
来源: http://www.phpxs.com/code/1002406/