讀<設計模式之Proxy(代理)>後有兩個疑問。
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!
相關文章
- 尋書---<<ejb設計模式>>設計模式
- <實戰DDD(Domain-Driven Design領域驅動設計:Evans DDD)>讀後疑問AI
- 設計模式之代理模式(proxy pattern)設計模式
- Java設計模式之代理模式(Proxy)Java設計模式
- JAVA設計模式之 代理模式【Proxy Pattern】Java設計模式
- C++設計模式之Proxy模式(代理模式)C++設計模式
- 關於Proxy和Decorator設計模式的疑問設計模式
- 設計模式系列之代理模式(Proxy Pattern)——物件的間接訪問設計模式物件
- Java版<<青花瓷>>Java
- 說透設計模式-代理模式與Proxy設計模式
- C#設計模式——代理模式(Proxy Pattern)C#設計模式
- 人人都會設計模式---代理模式--Proxy設計模式
- 設計模式--代理模式Proxy(結構型)設計模式
- C#設計模式系列:代理模式(Proxy)C#設計模式
- java23中設計模式–代理模式ProxyJava設計模式
- java23中設計模式--代理模式ProxyJava設計模式
- 設計模式的征途—13.代理(Proxy)模式設計模式
- Head First 設計模式 —— 13. 代理 (Proxy) 模式設計模式
- 設計模式之代理模式設計模式
- 《設計模式》之代理模式設計模式
- 【設計模式之代理模式】設計模式
- 代理模式(Proxy)模式
- <html:form action="/.....> 要佔兩行空白行?HTMLORM
- 設計模式之代理設計模式
- 設計模式之禪之代理模式設計模式
- Javascript設計模式之代理模式JavaScript設計模式
- Java設計模式之代理模式Java設計模式
- 設計模式系列之「代理模式」設計模式
- 設計模式之間互為陷阱的問題!為模式而模式的疑問!設計模式
- to robbin: 你的<<Java Learning Path>> 可以自由轉載麼?Java
- 我準備買<<Java實用系統開發指南>>,但是Java
- 關於設計模式的疑問設計模式
- Java設計模式-之代理模式(動態代理)Java設計模式
- 代理模式(Proxy Pattern)模式
- <b>Hibernate中文論壇開張</b> ==> http://hibernate.fankai.com/HTTPAI
- 23天設計模式之代理模式設計模式
- Java設計模式之(五)——代理模式Java設計模式
- C++設計模式之代理模式C++設計模式