关于synchronized锁的问题

J2EE 码拜 5年前 (2015-04-21) 160次浏览 0个评论
 

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

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

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

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

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

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

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

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

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明关于synchronized锁的问题
喜欢 (0)
[1034331897@qq.com]
分享 (0)

文章评论已关闭!