Support包下的物件池

2021-09-11 12:45:46 字數 1136 閱讀 1432

今天偶然發現support包下內建了通用型物件池

android.support.v4.util.pool

複製**

物件池的設定很簡單

/**

* inte***ce for managing a pool of objects.

** @param

the pooled type.

*/public

static

inte***ce

pool

複製**

acquire()負責獲取物件release(t)負責釋放物件。同時內建實現了2類物件池

//...

private

final object mlock = new object();

//...

@override

public t acquire

() }

@override

public

boolean

release

(t element)

}複製**

在內部實現中,物件池採用陣列儲存物件

private

final object mpool;

複製**

總結

support包中的pool的設計可謂是輕巧,精密。但仍有較大區別與一般的通用型物件池。

關於物件池,一般使用於建立/銷毀物件存在較大效能的情況下類似快取的一種解決方案。在現代jvm上,小物件的建立和**動作是非常廉價,不一定具有入物件池的資格。

實際上,可以在pool的基礎做些改進

private

final

byte mlock = new

byte[0];

複製**

生成零長度的byte物件只需3條操作碼,而object lock = new object()則需要7行操作碼

執行緒池 juc包下

1.使用執行緒池的優點如下 1.降低資源消耗 通過重複利用已建立的執行緒,降低執行緒建立與銷毀帶來的損耗。2.提高響應速度 當新任務到達時,任務不需要等待執行緒建立就可以立即執行。3.提高執行緒的可管理性 使用執行緒池可以統一進行執行緒分配 排程與監控。當乙個runnable或callable物件到...

Android SDK中的Support相容包詳解

背景 support library 我們都知道android一些sdk比較 為此google官方提供了android support library package 系列的包來保證高版本sdk開發的向下相容性,所以你可能經常看到v4,v7,v13這些數字,首先我們就來理清楚這些數字的含義,以及它們...

CSS中 support的用法

這段時間一直在除錯瀏覽器的相容性問題,了解到了 support的這個屬性,記錄下 css中的 support主要是用於檢測瀏覽器是否支援css的某個屬性,其實就是條件判斷,如果支援某個屬性,你可以寫一套樣式,如果不支援某個屬性,你也可以提供另外一套樣式作為替補。但是這裡有一點需要注意的是 suppo...