public class ObjectPool<T> extends Object
Vestful Framework. WebSite: https://github.com/helyho/Vestful Licence: Apache v2 License
Modifier and Type | Class and Description |
---|---|
class |
ObjectPool.InnerObject<T>
池中缓存的对象模型
|
Constructor and Description |
---|
ObjectPool()
构造一个对象池
|
ObjectPool(long aliveTime)
构造一个对象池
|
ObjectPool(long aliveTime,
boolean autoRefreshOnGet)
构造一个对象池
|
Modifier and Type | Method and Description |
---|---|
Long |
add(T obj)
增加池中的对象
|
ObjectPool<T> |
aliveTime(long aliveTime)
设置对象池的对象存活时间
|
ObjectPool<T> |
autoRefreshOnGet(boolean autoRefreshOnGet) |
int |
avaliableSize()
可用的对象数
|
T |
borrow()
借出这个对象
如果有提供 supplier 函数, 在没有可借出对象时会构造一个新的对象, 否则返回 null
|
T |
borrow(long waitTime)
借出对象
|
int |
borrowedSize()
出借的对象数
|
void |
clear()
清理池中所有的对象
|
boolean |
contains(long id)
判断池中是否存在对象
|
ObjectPool<T> |
create()
创建ObjectPool
|
Function<T,Boolean> |
destory()
获取对象销毁函数
在对象被销毁前工作
|
ObjectPool<T> |
destory(Function<T,Boolean> destory)
设置对象销毁函数
在对象被销毁前工作
|
long |
getAliveTime() |
int |
getInterval() |
int |
getMaxSize() |
int |
getMinSize() |
Supplier<T> |
getSupplier()
获取对象构造函数
在对象被构造工作
|
void |
initObjects()
按照 minSize 初始化最小容量的对象
|
ObjectPool<T> |
interval(int interval) |
boolean |
isAutoRefreshOnGet()
是否获取对象时刷新对象存活时间
|
ObjectPool<T> |
maxSize(int maxSize) |
ObjectPool<T> |
minSize(int minSize) |
void |
restitution(T obj)
归还借出的对象
|
int |
size()
获取当前对象池的大小
|
ObjectPool<T> |
supplier(Supplier<T> supplier)
设置对象构造函数
对象被构造是用的函数
|
String |
toString() |
Function<T,Boolean> |
validator()
验证器
在获取对象时验证
|
ObjectPool<T> |
validator(Function<T,Boolean> validator)
设置验证器
在获取对象时验证
|
public ObjectPool(long aliveTime, boolean autoRefreshOnGet)
aliveTime
- 对象存活时间,小于等于0时为一直存活,单位:秒autoRefreshOnGet
- 获取对象时刷新对象存活时间public ObjectPool(long aliveTime)
aliveTime
- 对象存活时间,单位:秒public ObjectPool()
public long getAliveTime()
public ObjectPool<T> autoRefreshOnGet(boolean autoRefreshOnGet)
public int getMinSize()
public ObjectPool<T> minSize(int minSize)
public int getMaxSize()
public ObjectPool<T> maxSize(int maxSize)
public int getInterval()
public ObjectPool<T> interval(int interval)
public ObjectPool<T> supplier(Supplier<T> supplier)
supplier
- 对象构造函数public ObjectPool<T> validator(Function<T,Boolean> validator)
validator
- Function 对象public ObjectPool<T> destory(Function<T,Boolean> destory)
destory
- 对象销毁函数public ObjectPool<T> aliveTime(long aliveTime)
aliveTime
- 对象存活时间,单位:秒public boolean isAutoRefreshOnGet()
public T borrow()
public T borrow(long waitTime) throws TimeoutException
waitTime
- 超时时间TimeoutException
- 超时异常public void restitution(T obj)
obj
- 借出的对象public boolean contains(long id)
id
- 对象的 hash 值public int size()
public int borrowedSize()
public int avaliableSize()
public void clear()
public void initObjects()
public ObjectPool<T> create()
Copyright © 2020 Voovan. All rights reserved.