synchronized与singleton

liujun3512159 2009-12-02 10:14:29
请教各位大侠,我一直认为,只有在singleton情况下,需要考虑同步,不知道我的理解对不对,我也看了些多线程,发现,需要同步的地方,好像也是singleton

...全文
89 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
liujun3512159 2009-12-02
  • 打赏
  • 举报
回复
有并发的地方就需要同步,跟单例无关。

呵呵,比较笨,不明白你的意思,能举个例子吗?
在并发的情况下,如果,不存在singleton状态,我想,其“成员变量”一定不会出现共享呀,既然没有共享的问题,还需要同步吗?
defty 2009-12-02
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 liujun3512159 的回复:]
我的意思是说,如果要同步,该状态一定是singleton
但是,状态时singleton ,未必要同步,请问这样理解对吗?
[/Quote]

同步跟单例不能混为一谈。
有并发的地方就需要同步,跟单例无关。
单例如果不用惰性加载,也完全不需要同步。
另外对于单例,就算你同步了,也有别的办法可以破坏单例。
liujun3512159 2009-12-02
  • 打赏
  • 举报
回复
我的意思是说,如果要同步,该状态一定是singleton
但是,状态时singleton ,未必要同步,请问这样理解对吗?
panhaichun 2009-12-02
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 panhaichun 的回复:]
有些狭窄。

还要看是否有包含状态的属性。


有状态的singleton需要同步,无状态的singleton也不需要同步
[/Quote]

说错了,有点不够严谨,有状态的singleton是否需要同步看情况。


需要同步的地方还有其它,比如说生产消费、有的可能引起死锁的地方
panhaichun 2009-12-02
  • 打赏
  • 举报
回复
有些狭窄。

还要看是否有包含状态的属性。


有状态的singleton需要同步,无状态的singleton也不需要同步

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧