可重用数据载体类(Java版)

最近在做跟音视频相关的开发,这些数据通过网络接受过来后直接执行播放操作,为了更流畅的进行播放,进行了一个缓存队列进行暂存。

从收流到放置缓存队列中,再到从缓存队列中取数据去进行播放,因为这些数据很多信息,需要创建一个实体类来进行封装,但是从创建-赋值-使用-丢弃,发现创建了大量的临时数据实体,大大增加了JVM的垃圾回收工作。于是便考虑,能否仿照Android开发中Message类做一个可重复利用的实体类呢,这样就避免了重复创建大量的临时对象,而且也能大大减少创建对象带来的开销,于是看了下其源码,照葫芦画瓢如下:

/**
 * 数据载体类
 * 可重用
 */
public class RecycleableDataHolder {
	
	//
	// 一些成员变量
	//

    private RecycleableDataHolder next;

    private static final Object sPoolSync = new Object();
    private static RecycleableDataHolder sPool;
    private static int sPoolSize = 0;

    public static final int MAX_POOL_SIZE = 32;

    private RecycleableDataHolder() {

    }

    public static RecycleableDataHolder obtain() {
        synchronized (sPoolSync) {
            if (sPool != null) {
                RecycleableDataHolder holder = sPool;
                sPool = ho
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值