
池化技术
发布日期:2021-05-08 09:46:12
浏览次数:28
分类:精选文章
本文共 1278 字,大约阅读时间需要 4 分钟。
池化技术
那些创建时间长,需要大量资源,创建后可重复使用的对象,这类对象往往是比较消耗资源的,为了节省资源开销,可以把对象缓存起来,需要的时候拿出来用,提高资源利用率
常见的有线程池、数据库连接池等
定义池的功能
public interface ImgClientTool { //初始化 void init(); //销毁 void destroy(); //获取连接 ImgClient getConnection(); //释放连接 void release(ImgClient conn);}
具体实现
import org.springframework.stereotype.Component;import javax.annotation.PostConstruct;import java.util.concurrent.LinkedBlockingQueue;import java.util.concurrent.TimeUnit;import java.util.concurrent.atomic.AtomicInteger;@Componentpublic class ImgClientImpl implements ImgClientTool { //最大连接数 private int maxSize = 10; //存活数 private AtomicInteger activeSize = new AtomicInteger(0); //闲置连接 private LinkedBlockingQueueidle; //繁忙连接 private LinkedBlockingQueue busy; //spring加载时初始化方法 @PostConstruct public void init() { idle = new LinkedBlockingQueue(); busy = new LinkedBlockingQueue(); } public void destroy() { //不销毁 } public ImgClient getConnection() { ImgClient conn = null; //从闲置池取出第一个连接并删除 conn = idle.poll(); if(null != conn){ //放入繁忙连接池 busy.offer(conn); return conn; } //存活连接数小于最大连接数,新建连接 if(activeSize.get()
发表评论
最新留言
路过,博主的博客真漂亮。。
[***.116.15.85]2025年04月01日 15时21分17秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
mysql主从延迟高的原因
2021-05-08
ATS缓存数据结构
2021-05-08
glob模块
2021-05-08
6 个 Linux 运维典型问题
2021-05-08
oracle无法启动asm实例记录
2021-05-08
取消vim打开文件全是黄色方法
2021-05-08
一个系统部署多个tomcat实例
2021-05-08
HP服务器设置iLO
2021-05-08
从头实现一个WPF条形图
2021-05-08
.NET CORE(C#) WPF 方便的实现用户控件切换(祝大家新年快乐)
2021-05-08
使用QT实现一个简单的登陆对话框(纯代码实现C++)
2021-05-08
QT :warning LNK4042: 对象被多次指定;已忽略多余的指定
2021-05-08
GLFW 源码 下载-编译-使用/GLAD配置
2021-05-08
针对单个网站的渗透思路
2021-05-08
Typescript 学习笔记六:接口
2021-05-08
【ASP.NET】ASP.NET中权限验证使用OnAuthorization实现
2021-05-08
02、MySQL—数据库基本操作
2021-05-08
OpenJDK1.8.0 源码解析————HashMap的实现(一)
2021-05-08
MySQL-时区导致的时间前后端不一致
2021-05-08