Laya物件池Pool類

2022-09-03 02:54:09 字數 2344 閱讀 5090

pool類的儲存方式是:鍵值對(即josn),值是個陣列,鍵是儲存物件的類名。

新增鍵值的方法:recover(sign:string, item:object)sign:類名、item:類的內容,該方法通過getpoolbysign(sign:string):array來獲取對應的鍵值(如果沒有傳進來的類名值時,會建立鍵和返回乙個空陣列),呼叫getpoolbysign(sign:string)會返回陣列在recover(sign:string, item:object)方法中push進去。

/**

* 根據物件型別標識字元,獲取物件池。

* @param sign 物件型別標識字元。

* @return 物件池。

*/public static function getpoolbysign(sign:string):array

/*** 將物件放到對應型別標識的物件池中。

* @param sign 物件型別標識字元。

* @param item 物件。

*/public static function recover(sign:string, item:object):void

呼叫物件池中已有的物件的方法:getitembyclass(sign:string, cls:class):*getitembycreatefun(sign:string, createfun:function):*getitem(sign:string):*

3個方法的共同點:

有物件的空閒物件時,移除陣列最後乙個,並且會返回移除的物件。

3個方法的不同點:

getitembyclass(sign:string, cls:class):*:當沒有空閒物件時,會根據傳入的類而建立乙個新類作為返回值。

getitembycreatefun(sign:string, createfun:function):*:當沒有空閒物件時,會根據傳入的function而返回該function的返回值。

getitem(sign:string):*:當沒有空閒物件時直接返回null

/**

* 根據傳入的物件型別標識字元,獲取物件池中此型別標識的乙個物件例項。

* 當物件池中無此型別標識的物件時,則根據傳入的型別,建立乙個新的物件返回。

* @param sign 物件型別標識字元。

* @param cls 用於建立該型別物件的類。

* @return 此型別標識的乙個物件。

*/public static function getitembyclass(sign:string, cls:class):*

/*** 根據傳入的物件型別標識字元,獲取物件池中此型別標識的乙個物件例項。

* 當物件池中無此型別標識的物件時,則使用傳入的建立此型別物件的函式,新建乙個物件返回。

* @param sign 物件型別標識字元。

* @param createfun 用於建立該型別物件的方法。

* @return 此型別標識的乙個物件。

*/public static function getitembycreatefun(sign:string, createfun:function):*

/*** 根據傳入的物件型別標識字元,獲取物件池中已儲存的此型別的乙個物件,如果物件池中無此型別的物件,則返回 null 。

* @param sign 物件型別標識字元。

* @return 物件池中此型別的乙個物件,如果物件池中無此型別的物件,則返回 null 。

*/public static function getitem(sign:string):*

return rst;

}

pool只能清除某個鍵中所有存放著的物件。方法是:clearbysign(sign:string):void

/**

* 清除物件池的物件。

* @param sign 物件型別標識字元。

*/public static function clearbysign(sign:string):void

boost的pool記憶體池

參考 boost程式庫開發完全指南 pool func eg.h pragma once include includeusing namespace boost void eg void eg object pool void eg construct void eg singleton pool...

python 程序池Pool詳情

當需要建立的子程序數量不多時,可以直接利用multiprocessing中的process動態成生多個程序,但如果是上百甚至上千個目標,手動的去建立程序的工作量巨大,此時就可以用到multiprocessing模組提供的pool方法。初始化pool時,可以指定乙個最大程序數,當有新的請求提交到poo...

nodejs之pool連線池

不使用連線池的壞處想必試過的人都已經知道了,我這裡給出乙個使用連線池的範例,實現的較為簡單,最好不要直接用。連線池範例 匯入所需模組 var mysql require mysql 匯入配置檔案 var cfg require config db var pool mysql.createpool ...