黑马程序员技术交流社区
标题:
同步代码块的 精确判断问题??
[打印本页]
作者:
杨华东
时间:
2012-10-10 00:54
标题:
同步代码块的 精确判断问题??
class Test
{
synchronized static void sayHello3()
{
}
synchronized void getX(){}
}
复制代码
上面两个代码块 同步吗???如何判断???把问题扼杀在摇篮 是老毕说的。。。感觉有道理 求大神帮助
作者:
葛旭东
时间:
2012-10-10 09:22
两个同步函数同不同步要看它们的锁是否一致。
synchronized void getX(){} 是一般同步函数,锁是this,即Test类的对象;
synchronized static void sayHello3(){} 是静态同步函数,锁不是this,而是Test.class。
所以这是不同步的!!!
作者:
刘伟平
时间:
2012-10-10 09:25
你这叫同步函数。是不是同步要看锁是否相同。
第一个是静态的同步函数,锁对象是类名.class字节码文件;
第二个是非静态的同步函数,锁对象是调用者所表示的对象。
作者:
黑马乔荣柱
时间:
2012-10-10 10:05
本帖最后由 彼岸花 于 2012-10-10 10:11 编辑
不同步啊
synchronized static void sayHello3()
{
}
你这是静态同步函数,默认的锁的对象是this.class
synchronized void getX(){}
}
这是一般的同步函数,默认的锁的对象是this
同步代码块的格式是
synchronized(this){
}
加油!!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2