JiveJdon Community Forums
在线88人 J道首页 | 论坛首页 | 培训咨询 | 开源框架 | 精华 | 查搜 | 注册 | 登陆 |
首页 » 论坛 » 设计模式、框架和架构
???en_US.forumThreadPrev.name??? 上一主题
Go back to the topic listing   返回主题列表
???en_US.forumThreadNext.name??? 下一主题
这个主题共有 1 回复 / 1 页 [ ]  发表新帖子  回复该主题贴
skillz

发表文章: 1
注册时间: 2007年11月30日 17:25
读<设计模式之Proxy(代理)>后有两个疑问。 发表: 2007年12月03日 15:24 回复
1、原文中有一段对copy-on-write操作的context的描述如下:


比如:我们有一个很大的Collection,具体如hashtable,有很多客户端会并发同时访问它.其中一个特别的客户端要进行连续的数据获取,此时要求其他客户端不能再向hashtable中增加或删除 东东.

最直接的解决方案是:使用collection的lock,让这特别的客户端获得这个lock,进行连续的数据获取,然后再释放lock.
public void foFetches(Hashtable ht){
  synchronized(ht){
    //具体的连续数据获取动作..
  }

}


但是这一办法可能锁住Collection会很长时间,这段时间,其他客户端就不能访问该Collection了.


HashTable本身不就是同步保证了吗?应该不存在还需要进行lock操作吧

2、最后解决办法中说:
这个特别的客户端先通过调用一个叫clone的方法来进行一系列数据获取操作.但实际上没有真正的进行对象拷贝,直至有其他客户端修改了这个对象Collection

如何实现直到别的客户更改了这个对象时才进行clone呢? 能给个例子吗?

Thanks!
banq

发表文章: 8929
注册时间: 2002年08月03日 17:08
回复:读<设计模式之Proxy(代理)>后有两个疑问。 发表: 2007年12月10日 10:12 回复
首先,你要问自己,你是在讨论J2SE语言语法 还是在学习一个无关乎语言的模式?

如果你确认后者,那么可以这样理解文中:我们有一个很大的集合,有很多客户端会并发同时访问它.其中一个特别的客户端要进行连续的数据获取,此时要求其他客户端不能再向集合中增加或删除 东东.

不要被技术细节或比喻误导。
这个主题有 1 回复 / 1 页 [ ]
???en_US.forumThreadPrev.name??? 上一主题
Go back to the topic listing   返回主题列表    返回页首  返回页首
???en_US.forumThreadNext.name??? 下一主题
热点TAG: AOP cache DDD EJB 集群 设计模式 Hibernate IOC JiveJdon OO RBAC Spring Struts
查询本论坛内 回复超过的热门帖子
快速发表回复
标题
 
粗体 斜体 下划线 插入图片 插入代码 插入url链接 插入附件
内容
 

解惑之道在J道 ,打造中国最具影响力的的企业软件社区
OpenSource JIVEJDON v3.0 Powered by JdonFramework Code © 2002-07 jdon.com

anti spam