池化技术
发布日期: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 LinkedBlockingQueue
idle; //繁忙连接 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()
上一篇:API接口防刷
下一篇:简易版Http请求工具

发表评论

最新留言

路过,博主的博客真漂亮。。
[***.116.15.85]2025年04月01日 15时21分17秒