对象池设计模式问题
Object pool design pattern problem
对于对象池,我们说每当客户端请求资源时,我们都会从池中提供。如果我签出了一个资源并更改了它的状态并将其签入。在下一个请求中会发生什么,池是让客户端签出该资源,还是该资源现在对池无效?
如果释放到池中的对象因重复使用而无效,那么该池将毫无意义。如果一个类需要初始化或重新初始化,可以在get()或release()池方法中进行。如果重新初始化需要的不仅仅是简单的分配(例如,一个5分钟内不能重复使用的套接字对象池),那么您可能不得不求助于一个专用的池管理器线程,该线程可以有效地将池拆分为几个水坑-那些可以重复使用的对象和那些等待重新初始化的对象。
Rgds,Martin
或者,在资源恢复到原始状态之前,您不应该将资源返回到池中。例如,假设您有一个web服务器,其中有一个侦听线程和一个由10个工作线程组成的池。侦听器线程接受传入的http请求,并将它们分派给工作线程进行处理。池中的工作线程(未签出)处于"原始"状态,即空闲或未处理请求。一旦侦听线程签出工作线程并向其提供http请求,工作线程就开始处理该请求;换句话说,它的状态是"工作"。一旦它处理完请求并向客户端发送了http回复,它就会再次"空闲"并返回到池中。因此,当前未从池中签出的所有线程始终处于其原始状态"空闲"。
相关文章:
- 派生类是否可以在抽象工厂设计模式中具有数据成员
- 资源管理设计模式
- 用于在回调中调用解析器的设计模式
- 需要为 C++ 中的以下问题设计递归算法
- 设计帮助 - 为不同类型的消息处理通用接口的设计模式
- 在这种情况下我应该使用哪种设计模式
- C++中物体改变识别的设计模式?
- 确保所有构造函数调用相同的函数 c++ 设计模式
- 需要实例化不同类/对象并在启动时确定的硬件插槽的设计模式
- 设计模式,以避免不必要地添加抽象函数以适应新功能
- 工厂设计模式优化
- 使用C++模板的数据映射器设计模式
- 在C++中寻找解决此问题的特定设计模式
- 观察员设计模式问题
- 与访问者设计模式的实现相关的问题
- 工厂设计模式问题
- 观察者设计模式接口契约设计问题
- 对象池设计模式问题
- C++为一般设计问题找到最合适的设计模式
- c++设计模式问题.单接口多实现