黑马程序员技术交流社区
标题:
synchronized锁的问题
[打印本页]
作者:
徐芾清
时间:
2014-3-8 19:06
标题:
synchronized锁的问题
synchronized(){}
静态方法中的同步代码块的锁是什么?是不是必须传递Obj.class进去?
作者:
桃华月禅
时间:
2014-3-8 21:31
多线程学的不怎么样,不过我记得任何存在的*.class都可以的吧。
作者:
平凡成就非凡
时间:
2014-3-8 21:54
非静态同步方法(函数)的锁是this ,而静态的同步方法(函数),使用的锁是该方法所在类的字节码文件对象。 就是 类名.class
而你想说的是同步代码块吗?同步代码块你可以传进任意的Object 做为锁。
作者:
黑马晓志
时间:
2014-3-9 15:00
不是必须的,只要是Object类的对象或者子类的对象都行。
还有一点需要特别注意就是 public sychronized void method(){ //方法内容 },非静态同步方法的锁默认是this。也就是说,这个代码也可以这样写public void method(){ sychronized(this){ //方法内容 } }。而静态方法的锁默认是类.class。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2