對於對象池,我們說每當客戶端請求資源時,我們都會從池中給它。如果我檢出一個資源並更改其狀態並將其檢入。下一個請求會發生什麼情況,池是否讓客戶端檢出此資源或此資源現在對池無效?對象池設計模式問題
1
A
回答
1
如果釋放到池中的對象變得無效再使用,則該池會有點毫無意義。如果一個類需要初始化或者重新初始化,你可以在get()或release()池方法中完成。如果重新初始化需要的不僅僅是簡單的分配(例如一個不能在5分鐘內重新使用的套接字對象池),那麼你可能不得不求助於專用的池管理器線程,該線程有效地將池分成幾個水坑 - 可供重複使用的對象和等待重新初始化的對象。
RGDS, 馬丁
0
,或者,你不應該返回資源回池中,直到該資源恢復到原來的狀態。例如,假設您有一個帶有偵聽器線程和10個工作線程池的Web服務器。偵聽器線程接受傳入的http請求並將其分派給工作線程進行處理。池中的工作線程(未檢出)處於其「原始」狀態,即空閒或未處理請求。一旦偵聽器線程檢出一個工作線程並給它一個http請求,工作線程就開始處理請求;換句話說,它的狀態是「工作」。一旦處理完請求併發送了http回覆給客戶端,它就會再次「空閒」並返回到池中。因此,當前沒有檢出池的所有線程始終處於其原始狀態,即「空閒」。
相關問題
- 1. 設計模式:連接的對象池
- 2. actionscript中的對象池設計模式
- 3. Python的對象池設計模式
- 4. 空對象設計模式問題
- 5. 面向對象程序設計問題 - 狀態設計模式
- 6. 域名/對象模型設計問題
- 7. 抽象設計/模式問題
- 8. 對象/類設計問題
- 9. Flyweight設計模式來創建共享對象池
- 10. mvp設計模式 - 問題
- 11. 設計模式問題
- 12. 設計模式問題
- 13. .net設計模式問題
- 14. 設計模式問題
- 15. 設計模式問題
- 16. 設計模式問題
- 17. MVVM設計模式問題
- 18. 線程池和生產者 - 消費者模式設計問題
- 19. 對象和對象元模式設計
- 20. 查詢對象模式(設計模式)
- 21. Python中的對象設計模式問題
- 22. 三ROME對象模型設計模式
- 23. 線程池的設計模式
- 24. 設計和對象責任的問題
- 25. 面向對象的設計問題
- 26. 面向對象的設計問題,iPhone
- 27. 面向對象設計問題
- 28. 基本對象設計問題
- 29. RMI - 遠程對象 - 設計問題
- 30. 對象體系結構設計問題