最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用GenericObjectPool避免泄漏設(shè)置方法

 更新時間:2023年09月24日 08:45:42   作者:channingbj  
這篇文章主要為大家介紹了使用GenericObjectPool避免泄漏的設(shè)置方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

GenericObjectPool

GenericObjectPool 是 Apache Commons Pool 提供的對象池,使用的時候需要調(diào)用 borrowObject 獲取一個對象,使用完以后需要調(diào)用 returnObject 歸還對象,或者調(diào)用 invalidateObject 將這個對象標(biāo)記為不可再用。

實際應(yīng)用中由于程序?qū)崿F(xiàn)的問題,可能造成在一些極端的情況下出現(xiàn) borrowObject/invalidateObject 沒有被調(diào)用導(dǎo)致的泄漏問題。

對象泄漏會導(dǎo)致對象池中的對象數(shù)量一直上升,達到設(shè)置的上限以后再調(diào)用 borrowObject 就會永遠等待或者拋出 java.util.NoSuchElementException: Timeout waiting for idle object 異常。

對于這種問題,一方面是從應(yīng)用實現(xiàn)上進行排查,另一方面可以通過 GenericObjectPool 自帶的機制進行清理。

設(shè)置自動清理

設(shè)置拋棄時間

GenericObjectPool判斷一個對象是否泄漏是根據(jù)對象最后一次使用或者最后一次borrow的時間進行判斷的,如果超出了預(yù)設(shè)的值就會被認(rèn)為是一個泄漏的對象被清理掉(PooledObjectFactory.destroyObject在這一過程中會被調(diào)用)。

拋棄時間可以通過 AbandonedConfig.setRemoveAbandonedTimeout 進行設(shè)置,時間單位是秒。

打開泄漏清理

設(shè)置了拋棄時間以后還需要打開泄漏清理才會生效。泄漏判斷的開啟可以通過兩種方式:

  • 從對象池中獲取對象的時候進行清理

如果當(dāng)前對象池中少于2個idle狀態(tài)的對象或者 active數(shù)量>最大對象數(shù)-3 的時候,在borrow對象的時候啟動泄漏清理。通過 AbandonedConfig.setRemoveAbandonedOnBorrow 為 true 進行開啟。

  • 啟動定時任務(wù)進行清理

AbandonedConfig.setRemoveAbandonedOnMaintenance 設(shè)置為 true 以后,在維護任務(wù)運行的時候會進行泄漏對象的清理,可以通過 GenericObjectPool.setTimeBetweenEvictionRunsMillis 設(shè)置維護任務(wù)執(zhí)行的時間間隔。

GenericObjectPool<PoolObj> pool = new GenericObjectPool<PoolObj>(new MyPooledObjectFactory(),config);
AbandonedConfig abandonedConfig = new AbandonedConfig();
abandonedConfig.setRemoveAbandonedOnMaintenance(true); //在Maintenance的時候檢查是否有泄漏
abandonedConfig.setRemoveAbandonedOnBorrow(true); //borrow 的時候檢查泄漏
abandonedConfig.setRemoveAbandonedTimeout(10); //如果一個對象borrow之后10秒還沒有返還給pool,認(rèn)為是泄漏的對象
pool.setAbandonedConfig(abandonedConfig);
pool.setTimeBetweenEvictionRunsMillis(5000); //5秒運行一次維護任務(wù)

以上就是使用GenericObjectPool避免泄漏設(shè)置方法的詳細內(nèi)容,更多關(guān)于GenericObjectPool避免泄漏的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 詳解使用Java原生代理實現(xiàn)AOP實例

    詳解使用Java原生代理實現(xiàn)AOP實例

    本篇文章主要介紹了詳解使用Java原生代理實現(xiàn)AOP實例,具有一定的參考價值,有興趣的可以了解一下。
    2017-01-01
  • Java?詳解Map集合之HashMap和TreeMap

    Java?詳解Map集合之HashMap和TreeMap

    本章具體介紹了HashMap、TreeMap兩種集合的基本使用方法和區(qū)別,圖解穿插代碼實現(xiàn)。?JAVA成仙路從基礎(chǔ)開始講,后續(xù)會講到JAVA高級,中間會穿插面試題和項目實戰(zhàn),希望能給大家?guī)韼椭?/div> 2022-03-03
  • Springboot整合Socket實現(xiàn)單點發(fā)送,廣播群發(fā),1對1,1對多實戰(zhàn)

    Springboot整合Socket實現(xiàn)單點發(fā)送,廣播群發(fā),1對1,1對多實戰(zhàn)

    本文主要介紹了Springboot整合Socket實現(xiàn)單點發(fā)送,廣播群發(fā),1對1,1對多實戰(zhàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08
  • 使用Java代碼將IP地址轉(zhuǎn)換為int類型的方法

    使用Java代碼將IP地址轉(zhuǎn)換為int類型的方法

    這篇文章主要介紹了使用Java代碼將IP地址轉(zhuǎn)換為int類型的方法,這也是各大計算機考試和ACM以及面試的常見基礎(chǔ)問題,需要的朋友可以參考下
    2015-08-08
  • Springboot獲取文件內(nèi)容如何將MultipartFile轉(zhuǎn)File

    Springboot獲取文件內(nèi)容如何將MultipartFile轉(zhuǎn)File

    本文給大家介紹Springboot獲取文件內(nèi)容,將MultipartFile轉(zhuǎn)File方法,本文結(jié)合示例代碼給大家介紹的非常詳細,感興趣的朋友一起看看吧
    2024-01-01
  • Spring監(jiān)聽器及定時任務(wù)實現(xiàn)方法詳解

    Spring監(jiān)聽器及定時任務(wù)實現(xiàn)方法詳解

    這篇文章主要介紹了Spring監(jiān)聽器及定時任務(wù)實現(xiàn)方法詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-07-07
  • springmvc path請求映射到bean 方法的流程

    springmvc path請求映射到bean 方法的流程

    這篇文章主要介紹了springmvc path請求映射到bean 方法的流程,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-07-07
  • 詳解Java兩種方式簡單實現(xiàn):爬取網(wǎng)頁并且保存

    詳解Java兩種方式簡單實現(xiàn):爬取網(wǎng)頁并且保存

    本篇文章主要介紹了Java兩種方式簡單實現(xiàn):爬取網(wǎng)頁并且保存 ,主要用UrlConnection、HttpClient爬取實現(xiàn),具有一定的參考價值,感興趣的小伙伴們可以參考一下。
    2016-12-12
  • Java利用LocalDate類實現(xiàn)日歷設(shè)計

    Java利用LocalDate類實現(xiàn)日歷設(shè)計

    java中做時間處理時一般會采用java.util.Date,但是相比于Date來說,還有更好的選擇--java.time.LocalDate。本文就來用LocalDate類實現(xiàn)日歷設(shè)計,感興趣的可以動手嘗試一下
    2022-07-07
  • 一文帶你剖析Redisson分布式鎖的原理

    一文帶你剖析Redisson分布式鎖的原理

    相信使用過redis的,或者正在做分布式開發(fā)的童鞋都知道redisson組件,它的功能很多,但我們使用最頻繁的應(yīng)該還是它的分布式鎖功能,少量的代碼,卻實現(xiàn)了加鎖、鎖續(xù)命(看門狗)、鎖訂閱、解鎖、鎖等待(自旋)等功能,我們來看看都是如何實現(xiàn)的
    2022-11-11

最新評論

龙泉市| 六安市| 红安县| 克什克腾旗| 弋阳县| 拉萨市| 揭阳市| 新野县| 湖北省| 三台县| 贵港市| 雅江县| 弋阳县| 宣化县| 孟州市| 丽水市| 祁阳县| 遵义县| 南漳县| 河北省| 淳安县| 临朐县| 赤壁市| 威海市| 太保市| 长治县| 资源县| 奉新县| 南木林县| 邮箱| 岳阳市| 桂阳县| 霍州市| 洞口县| 清镇市| 循化| 兴义市| 静乐县| 林州市| 临高县| 上高县|