物件池的運用

2021-09-01 04:26:05 字數 924 閱讀 4776

關於物件池的應用

物件池的工作原理:

物件池的工作原理的核心有兩點:使用和快取,即對於那些被頻繁使用的物件,在使用完後,不立即將它們釋放,而是將它們快取起來,以供後續的應用程式反覆使用,從而減少建立物件和釋放物件的次數,進而改善應用程式的效能。

優點:能快速取出物件節省了new物件所產生的cpu,時間的消耗。能很好的控制記憶體的占用,使用時從物件池取出,使用完畢放回。中間不涉及到物件銷毀建立,所以記憶體占用是定量的。同時假如物件池提前

缺點:物件池同樣消耗new同樣物件所消耗的時間,物件池從建立到結束消耗定量的記憶體。物件池只適合大量的物件需要被反覆建立使用銷毀建立使用銷毀的情況。非提前初始化式記憶體池,快取as值型別的物件如:point反而產生更大的消耗。

要實現乙個物件池,一般會涉及到以下的幾個類:

目標物件(someobject)類

該類就是程式中頻繁使用的物件。

物件池(objectpool)類

該類主要用於管理物件的借出和歸還,並通知物件池完成相應的工作。它至少包含兩個方法:

borrowobject():用於從池中借出物件;

returnobject():將物件歸還到池中;

?package wingox.pool

20 21 public function borrowobject() : object

25 return new _template();

26 }

27 28 public function returnobject(value : object) : void

31 32 public static function getpool(value : class) : objectpool

36 return _pool[value];

37 }

38 }

39 }

unity中物件池運用

最近在研究物件池在unity中的運用 物件池,通常用於在那些需要經常建立又銷毀的物件 比如我們場景中的小怪,經常需要建立和銷毀,我們就可以在小怪銷毀的時候,不真正的銷毀而是,而是把它放入物件池中 等到下一次我們需要建立小怪的時候,再從物件池中取出來 由於物件池的物件沒有真正銷毀,而手機的記憶體又是如...

執行緒池的運用

當有很多執行緒的時候就可以用到執行緒池了 executorservice executor executors.newfixedthreadpool 3 這是建立3個固定的執行緒池,如果執行緒有4個,則另乙個只能處於等待狀態 public public static void main string...

物件池的使用

1 乙個模板類的物件池,template class objpool objpool void bool init int nmaxcount 10 t newobj void 取得pos的物件 同時在obj中記錄在pool中的index pool unlock return pobj void d...