微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

对象池设计模式问题

如何解决对象池设计模式问题

| 对于对象池,我们说只要客户端请求资源,我们就会从池中提供资源。如果我签出一个资源并更改其状态并签入。下一个请求会发生什么,该池是否允许客户端签出该资源,或者该资源现在对于该池无效?     

解决方法

        如果释放到池中的对象变为无效以供重用,则该池将毫无意义。如果类需要初始化或重新初始化,则可以在get()或release()池方法中进行。如果重新初始化所需要的不仅仅是简单的分配(例如,套接字对象池必须在5分钟内不能重复使用),那么您可能不得不诉诸于专用的池管理器线程,该线程可以有效地将池分成几个水坑-那些可重复使用的对象以及等待重新初始化的对象。 Rgds, 马丁     ,        或者,或者,您不应该将资源返回到池中,直到资源回到其原始状态为止。例如,假设您有一个带有侦听器线程和10个工作线程池的Web服务器。侦听器线程接受传入的http请求,并将其分派到辅助线程进行处理。池中的工作线程(未检出)处于其“原始”状态,即处于空闲状态,或未处理请求。一旦侦听器线程检出一个工作线程并给它发出http请求,该工作线程便开始处理该请求。换句话说,其状态为“工作”。完成请求处理并将HTTP回复发送给客户端后,它再次变为“ idle \”并返回到池中。因此,当前未从池中检出的所有线程始终处于其原始状态\“ idle \”。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。