Code Bye

关于synchronized锁的问题

 

如果一个Manager类里有一个public final byte[] lock = new byte[0];属性,Manager创建的1个对象M。
那么如果在Manager类中synchronized (lock)和synchronized (this)是一样的吗?

最终达到的效果是一样的
一样效果,都不能保证线程安全。
引用 2 楼 xiaopeipei2004 的回复:

一样效果,都不能保证线程安全。

为什么不能保证线程安全?对这个对象加锁,就只能一个线程对这个对象操作了啊。


10分
了解一下java对象锁的可重入性
http://chenzehe.iteye.com/blog/1766790
引用 4 楼 xiaopeipei2004 的回复:

了解一下java对象锁的可重入性
http://chenzehe.iteye.com/blog/1766790

一个自定义的线程,如果run方法里代码没运行完是不会有重入的可能的啊(锁在run方法内的)。


10分
效果不一样,synchronized(this)对整个对象加锁。一旦加锁,对象的其他方法也不能调用。

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明关于synchronized锁的问题