Android 自带对象池Pools工具类简介

Android 包 androidx.core.util 下有个工具类 Pools,为开发者提供了两种对象池,没有同步控制的SimplePool 和 有同步控制(访问加锁)的SynchronizedPool(继承自SimplePool),方便开发者根据需要创建对应类型的对象池

Pools类的源码也非常简单,一看就懂

public final class Pools {

    /**
     * 对象池接口
     */
    public interface Pool<T> {

        /**
         * 从池中获取一个对象,没有则返回null
         */
        @Nullable
        T acquire();

        /**
         * 释放对象,将对象放入对象池中
         * 如果对象已经在池中类,会抛出IllegalStateException异常
         * 成功释放(池中有多余的空间)返回true;否则,返回false
         */
        boolean release(@NonNull T instance);
    }

    private Pools() {
        /* 私有构造方法,不允许外部创建实例 */
    }

    /**
     * 没有同步控制的简单对象池
     */
    public static class SimplePool<T> implements Pool<T> {
        private final Object[] mPool;

        private int mPoolSize;

        /**
         * Creates a new instance.
  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值