仿照Android的池化技术
2024-10-01 23:52:27
/**
* 仿照Android池化技术
* @author fgtian
*
*/
public class ObjectCacheTest {
public static class ObjectItem {
private static int sPoolSize = 0;
private static final int MAX_CACHE = 10;
private static final Object sPoolLock = new Object();
private static ObjectItem sPool = null; private ObjectItem mNext = null;
private int mValue; public static ObjectItem obtain() {
synchronized (sPoolLock) {
if (null != sPool) {
ObjectItem item = sPool;
sPool = item.mNext;
item.mNext = null;
--sPoolSize;
return item;
}
}
return new ObjectItem();
} public static ObjectItem obtain(int value) {
synchronized (sPoolLock) {
if (null != sPool) {
ObjectItem item = sPool;
sPool = item.mNext;
item.mNext = null;
--sPoolSize;
item.mValue = value;
return item;
}
}
return new ObjectItem(value);
} public void recycle() {
synchronized (sPoolLock) {
if (sPoolSize < MAX_CACHE) {
mValue = 0;
this.mNext = sPool;
sPool = this; sPoolSize++;
}
}
} public ObjectItem() { } public ObjectItem(int value) {
mValue = value;
} @Override
public String toString() {
return String.valueOf(mValue);
}
} public static final void main(String[] args) {
ObjectItem item1 = ObjectItem.obtain(1);
item1.recycle();
ObjectItem item2 = ObjectItem.obtain(3);
if (item1 == item2) {
System.out.println("YES, USE THE SAME OBJECT");
} else {
System.out.println("ERROR");
}
}
}
最新文章
- Windows-mysql5.7安装
- CF 468A 24 Game
- Sqli-LABS通关笔录-12
- BZOJ2400: Spoj 839 Optimal Marks
- 写给程序员和UI--Android的切图标准
- Java JDBC 驱动 MySQL
- Spring MVC 3.0.5+Spring 3.0.5+MyBatis3.0.4全注解实例详解(三)
- java 伪静态的方法
- java获取照片相关属性
- Blue Jeans
- NOI十连测 第三测 T1
- es随想一
- ASP.NET Core的身份认证框架IdentityServer4--(1)服务配置
- 2017年PHP程序员未来路在何方——韩天峰
- SpringMVC Controller接收参数总结
- 搭建Hbase完全分布式集群
- 自定义标签TLD文件中,rtexprvalue子标签的意思
- vsCode快捷键设置
- python学习笔记_week14
- Properties 使用
热门文章
- KDE Plasma 5.8 的 LTS 周期正好与其所采用的 Qt 5.6 的 LTS 周期一致
- google analytics是什么(免费的网站流量分析服务:比如分析有多少个人来了你的网站,告诉你怎么样才能在网站上面实现最大收益。)
- Vim常用匹配、查找、替换命令总结
- [Recompose] Compute Expensive Props Lazily using Recompose
- JSON入门之二:org.json的基本用法 分类: C_OHTERS 2014-05-14 11:25 6001人阅读 评论(0) 收藏
- ajax上传图片文件
- 忙里偷闲( ˇˍˇ )闲里偷学【C语言篇】——(8)枚举、补码
- c3p0 xml配置文件模版
- C++ 计算任意两个日期之间的天数
- 【U205】最大值