synchronized(){}语句,个人理解是一下这种关系。
{}:房间
():锁(并且是只能在房间内部打开的锁) 而传入的对象,就是锁的具体形态
synchronized:门
要进房间,要先判断门上的锁是什么状态,一个人进房间,把门锁上,无论在里面做什么,外边的人都管不着。一旦他打开了锁出了这个房间,另一个人再进去做什么,他也管不着。。
如果定义的是同步函数,那么就可以把整个函数体看做一个房间,synchronized还是那个门,而锁则是要进入房间这个人自带的,也就是这个对象的本身(this)。
这就是我在学同步的时候的个人理解。。 |