黑马程序员技术交流社区

标题: 下面两个方法同步吗? [打印本页]

作者: 范明正    时间: 2011-8-17 09:38
标题: 下面两个方法同步吗?
package com.isoftstone.interview.bank;

public class synchroniz {
        public static void main(String[] args) {
                synchroniz ppZ = new synchroniz();
                sayHello3();       
                ppZ.getX();
        }

        synchronized static void sayHello3() {
                System.out.println("tx");
        }

        synchronized void getX() {
                System.out.println("pt");
        }
}
作者: 匿名    时间: 2011-8-18 12:20
你的两个方法不可能同步。首先同步的话你要看同步锁的对象是哪个,你上面一个是静态同步方法,一个是对象的同步方法。对象方法的同步锁用的就是调用这个方法本身的对象。 而静态方法的同步锁对象是跟类相关的,你想想有哪个对象是跟类相关的?跟类相关的对象永远只有一个,那就是这个类的Class对象。因为你上面两个方法所用的同步锁对象不同,所以不会同步。
作者: 匿名    时间: 2011-8-18 12:53
= =什么同步不同步的。。。就一线程,顺序执行,加了syncronized效率反而低了
作者: 匿名    时间: 2011-8-18 12:56
。。。。我汗,你拿这个synchroniz做类名,与synchronized无关。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2