黑马程序员技术交流社区

标题: 同步代码块的问题! [打印本页]

作者: 山水游客    时间: 2012-6-3 23:02
标题: 同步代码块的问题!
synchronized(xxx)   需要用到同步代码块的时候.里边传的参数为什么要是个对象呢! 这个对象有什么意思!
作者: 黄克帅    时间: 2012-6-3 23:12
应该是这样的吧
这里面要放一个锁,而所有对象都自动含有一个单一的锁。所以就放对象了,这样方便。
作者: 黄捷    时间: 2012-6-3 23:21
传一个对象,相当于是一个判定,也就是楼上所说的一个锁,当学到操作系统就会明白,同步与死锁,其中就有一个PV操作。老毕在说锁的时候用到开关的说法,1为关,0为开。实际上应该是1为关,因为P操作的初始值是1,表示可以执行,当有对象要进去操作时,P进行减一操作,而初始值为0的V进行加以操作,如果对象出来了,V减一,P加一,这样来实现同步。因此传一个对象进去,只是做一个控制的作用,也就是同步操作对对象没有限制的原因,随便一个对象就能实现其功能。
作者: 王德升    时间: 2012-6-3 23:21
其实里面的对象相当于锁,二进制不是有个0和1吗,?1代表开着可以进去,0就是相反。
其次里面的对象是随意的,但是一定要注意如果同步的是方法,那么这个方法要是静态的,
就只能用方法所在类的字节码文件,类名.class。
作者: 黄捷    时间: 2012-6-3 23:21
传一个对象,相当于是一个判定,也就是楼上所说的一个锁,当学到操作系统就会明白,同步与死锁,其中就有一个PV操作。老毕在说锁的时候用到开关的说法,1为关,0为开。实际上应该是1为关,因为P操作的初始值是1,表示可以执行,当有对象要进去操作时,P进行减一操作,而初始值为0的V进行加以操作,如果对象出来了,V减一,P加一,这样来实现同步。因此传一个对象进去,只是做一个控制的作用,也就是同步操作对对象没有限制的原因,随便一个对象就能实现其功能。
作者: 山水游客    时间: 2012-6-3 23:27
谢谢大家的讲解




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