gpt4 book ai didi

java - 连接池设计

转载 作者:行者123 更新时间:2023-11-29 08:18:37 24 4
gpt4 key购买 nike

当有人要求您在 Java 面试中为连接池编写(做/描绘)设计时,您通常会写什么。

您是为连接池编写代码还是描绘类图。谁能解释一下连接池的设计。

最佳答案

对象池模式(连接池是它的一个特例)在 Mark Grand 的“Java 模式”中有大量描述。卷。 1'。

这是一个基本的类图(来自谷歌图片):

alt text http://img13.imageshack.us/img13/8448/poolz.png

主要思想:Client 不应该自己创建Reusable 对象。相反,他应该使用 ReusablePool。要获得 Reusable 对象,他应该调用 acquireReusable。当他不再需要 Reusable 对象时,他应该通过调用 releaseReusable 把它放回去。

ReusablePool 包含一个 Reusable 对象列表。当 Client 请求 Reusable 时,池会查找现有的免费 Reusable。如果获取了所有 Reusable 对象,那么如果列表大小小于 maxSize ReusablePool 会再创建一个 Reusable 对象。当列表大小等于 maxSize 时,池不会创建新的 Reusable。相反,它会等到其他客户端将任何 Reusable 对象还给他。

从这个描述中你可以得出两个结论:

  1. Reusable 对象不应该有状态(或者它们的状态应该在 releaseReusable 方法中被“清除”)

  2. ReusablePool 通常是多线程应用程序的一部分,其所有方法中的所有同步内容都应该以正确的方式实现(这不是一件容易的事)。

关于java - 连接池设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2370859/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com