資源池模式(J2EE design pattern摘記及感想4)

 

串串燒

一個XMLClient首先用XMLParseFactory作爲參數,創建了一個ResourcePool,並設置了最大資源數爲2.然後,第一個線程來請求解析器,調用了getResource方法。此時,還沒有一個resource,需要通過factory方法創建一個。假設第二個線程又申請了一個resource,當然,因爲線程池只有一個借出未歸還的resource,所以它自己又創建了一個。假設上述線程都還未歸還resource的情況下,第三個線程又來請求resource。但此時已達到了最大容量了,只能等待。過了一會兒,第一個線程運行完了,調用returnResource,歸還資源,此時線程池有資源可用了,就notify一下。等待的第三個線程被喚醒,它拿到了那個resource,通過factory的validateResource方法,重新初始化那個resource,以使能爲自己所用。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章