老熟女激烈的高潮_日韩一级黄色录像_亚洲1区2区3区视频_精品少妇一区二区三区在线播放_国产欧美日产久久_午夜福利精品导航凹凸

重慶分公司,新征程啟航

為企業提供網站建設、域名注冊、服務器等服務

Pool,SimplePool與SynchronizedPool-創新互聯

因為硬件資源的限制,Android在很多地方都使用了Pool的,特別是對于需要通過native的方式調用資源,比如專門用于獲取Touch、Flinging以及其他手勢速度的VelocityTracker類,文檔中指明了調用方式必須是:

創新互聯建站服務項目包括旺蒼網站建設、旺蒼網站制作、旺蒼網頁制作以及旺蒼網絡營銷策劃等。多年來,我們專注于互聯網行業,利用自身積累的技術優勢、行業經驗、深度合作伙伴關系等,向廣大中小型企業、政府機構等提供互聯網行業的解決方案,旺蒼網站推廣取得了明顯的社會效益與經濟效益。目前,我們服務的客戶以成都為中心已經輻射到旺蒼省份的部分城市,未來相信會繼續擴大服務區域并繼續獲得客戶的支持與信任!
// 創建
VelocityTracker mVelocityTracker = VelocityTracker.obtain();

// 回收
mVelocityTracker.recycle();
mVelocityTracker = null;

其內部使用了SynchronizedPool來實現:

public final class VelocityTracker {
    private static final SynchronizedPool sPool =
            new SynchronizedPool(2);
    // 省略其他代碼
}

其實現包括三個類和接口:Pool接口, SimplePool類與SynchronizedPool類,其實現代碼在android.util.Pools類中。代碼結構如下:

Pool接口

public static interface Pool {
    public T acquire();
    public boolean release(T instance);
}

   定義了兩個方法,一個從Pool中獲取,另一個將對象釋放到Pool中,非常簡潔。

SimplePool類

public static class SimplePool implements Pool {
    private final Object[] mPool;
    private int mPoolSize;

    public SimplePool(int maxPoolSize) {
        if (maxPoolSize <= 0) {
            throw new IllegalArgumentException("The max pool size must be > 0");
        }
        mPool = new Object[maxPoolSize];
    }
 
    // ...
}

使用一個Object數組來存放,因此Pool的容量是固定的,因此這里用Object數組是最簡單的,如果需要實現可以自動擴展的Pool,大可以將Object數組替換成鏈表。

SynchronizedPool類

public static class SynchronizedPool extends SimplePool {
    private final Object mLock = new Object();
    // ...
        
    public T acquire() {
        synchronized (mLock) {
            return super.acquire();
        }
    }
        
    public boolean release(T element) {
        synchronized (mLock) {
            return super.release(element);
        }
    }
}

這里只是增加了一個鎖(mLock),在Java里面任何一個對象都可以當作鎖。至于為什么直接用synchronized(this),一般認為synchronized(this)這樣是不好的,舉個例子,如果外面的代碼使用了synchronized(mSynchronizedPool)就會出現問題了,甚至有可能死鎖。可以參考:Avoid synchronized(this) in Java?

如何使用

如何使用這幾個類呢,方法如下:

public class MyPooledClass {  
    private static final SynchronizedPool sPool = new SynchronizedPool(10);
    
   public static MyPooledClass obtain() {
       MyPooledClass instance = sPool.acquire();
       return (instance != null) ? instance : new MyPooledClass();
   }

   public void recycle() {
        // Clear state if needed.
        sPool.release(this);
   }
   // ...
}

非常簡潔,看來實現一個Pool也是一件很容易的事情。

另外有需要云服務器可以了解下創新互聯scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業上云的綜合解決方案,具有“安全穩定、簡單易用、服務可用性高、性價比高”等特點與優勢,專為企業上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。


本文名稱:Pool,SimplePool與SynchronizedPool-創新互聯
文章路徑:http://www.xueling.net.cn/article/cesjch.html

其他資訊

在線咨詢
服務熱線
服務熱線:028-86922220
TOP
主站蜘蛛池模板: 久久亚洲中文字幕不卡一二区 | AV无码久久久久不卡网站蜜桃 | 中文亚洲av片不卡在线观看 | 国产超碰人人爽人人做人人添 | 日本永久免费a∨在线视频 91精品欧美一区二区三区 | 大陆一级毛片视频 | 日本成熟少妇喷浆视频 | 欧美三级不卡在线观看 | 久久久精品国产免费a片胖妇女 | 亚洲精品综合在线影院 | 潘金莲性xxxxhd | 久久久久极品 | 午夜激情在线视频 | 国产乱码一区二区三区在线观看 | 久久9精品区-无套内射无码 | 91日韩精品久久久久身材苗条 | 67194成人在线 | 国产美女一级a作爱在线观看 | 亚洲精品成人AA片在线播 | 免费的色网站 | 久久精品这里只有精品 | 日韩第一页在线 | 久久9精品区-无套内射无码 | 人人av在线| 一级久久19久久久区区区区区区 | 久久99精品久久久久久国产越南 | 日韩av视屏在线观看 | 永久免费看一区二区看片 | 神马久久网站 | videosgratis极品另类| 久久99日| 538PROM精品视频在线搬运工 | 久久亚洲精品国产精品777777 | 国产亚洲精品久久久久久动漫 | 国产av毛片| 亚洲欧洲成人A∨在线观看 和岳每晚弄的高潮嗷嗷叫视频 | 少妇太爽了在线观看 | 亚洲国产一区二区精品视频 | 国产自偷自拍 | 中文字幕第80页 | 亚洲视频一级 |