熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java高級技術 >> 正文

Java程序性能優化-對象復用“池”(3)[2]

2022-06-13   來源: Java高級技術 

  在Jakarta Commons Pool中已經內置定義了個對象池分別是StackObjectPoolGenericObjectPool和SoftReferenceObjectPool

  StackObjectPool:它利用javautilStack來保存對象可以為StackObjectPool指定一個初始化大小並且當空間不夠時StackObjectPool可以自動增長當無法從該對象池得到可用的對象時它會自動創建新的對象

  GenericObjectPool:是一個通用的對象池它可以設定對象池的容量也可以設定在無可用對象的情況下對象池的表現行為(等待或者創建新的對象實例)還可以設置是否進行對象的有效性檢查GenericObjectPool有一個復雜的構造函數來定義它的這些行為

  GenericObjectPool(

  PoolableObjectFactory<T> factory       //指定PoolableObjectFactory

  int maxActive                          //能從池中借出的對象的最大數目

  byte whenExhaustedAction   //指定當對象池耗盡時的行為(等待創建新實例拋異常)

  long maxWait                           //當耗盡行為為等待時最大的等待時間

  int maxIdle                            //最大的空閒對象數

  int minIdle                            //最小的空閒對象數

  boolean testOnBorrow                   //borrowObject()時是否進行有效性驗證

  boolean testOnReturn                   // returnObject()時是否進行有效性驗證

  long timeBetweenEvictionRunsMillis //多少毫秒進行對象清理

  int numTestsPerEvictionRun             //在進行後台對象清理時每次檢查幾個對象

  long minEvictableIdleTimeMillis        //休眠多少時間的對象設置為過期

  boolean testWhileIdle                  //是否對沒有過期的對象進行有效性檢查

  long softMinEvictableIdleTimeMillis

  //對象被回收前在池中保持空閒狀態的最小時間毫秒數

  boolean lifo                            //是否使用後進先出策略

  )

       返回目錄Java程序性能優化讓你的Java程序更快更穩定

  編輯推薦

       Java程序設計培訓視頻教程

       JEE高級框架實戰培訓視頻教程

       JME移動開發實戰教學視頻

  Visual C++音頻/視頻技術開發與實戰

  Oracle索引技術

  ORACLEG數據庫開發優化指南

[]  []  


From:http://tw.wingwit.com/Article/program/Java/gj/201311/27798.html
    推薦文章
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.