类 AsyncExecutor<E>
java.lang.Object
net.apexes.commons.lang.AsyncExecutor<E>
异步并行处理器。将要处理的数据加入到阻塞队列中,启动工作线程从队列中获取数据并处理。
- 作者:
- HeDYn
-
嵌套类概要
嵌套类修饰符和类型类说明static classstatic interface处理线程异常的监控器。static interface数据处理者,执行对待处理数据的处理工作。 -
构造器概要
构造器构造器说明AsyncExecutor(int queueCapacity, int parallelism, AsyncExecutor.Worker<E> worker) 创建一个异步并行处理器实例。AsyncExecutor(int queueCapacity, int parallelism, AsyncExecutor.Worker<E> worker, AsyncExecutor.ErrorMonitor monitor) 创建一个异步并行处理器实例。AsyncExecutor(int queueCapacity, int parallelism, AsyncExecutor.Worker<E> worker, AsyncExecutor.ErrorMonitor monitor, ThreadFactory threadFactory) 创建一个异步并行处理器实例。AsyncExecutor(int parallelism, AsyncExecutor.Worker<E> worker) 创建一个异步并行处理器实例。AsyncExecutor(AsyncExecutor.Worker<E> worker) 创建一个异步并行处理器实例。 -
方法概要
修饰符和类型方法说明static AsyncExecutor.Builderbuilder()voidclose()停止处理并释放资源。int获取当前处理队列的元素个数boolean判断此处理器是否处于激活状态。boolean将指定元素加入到处理队列中(如果立即可行且不会违反容量限制),成功时返回 true,如果当前没有可用的空间,则返回 false。boolean将指定元素插入处理队列中,在到达指定的等待时间前等待可用的空间(如果有必要)voidstart()启动处理,调用此方法后要调用close()方法释放资源。
-
构造器详细资料
-
AsyncExecutor
创建一个异步并行处理器实例。- 参数:
worker- 数据的处理者实例。
-
AsyncExecutor
创建一个异步并行处理器实例。- 参数:
parallelism- 并行处理的线程数。worker- 数据的处理者实例。
-
AsyncExecutor
创建一个异步并行处理器实例。- 参数:
queueCapacity- 待处理队列的最大容量parallelism- 并行处理的线程数。worker- 数据的处理者实例。
-
AsyncExecutor
public AsyncExecutor(int queueCapacity, int parallelism, AsyncExecutor.Worker<E> worker, AsyncExecutor.ErrorMonitor monitor) 创建一个异步并行处理器实例。- 参数:
queueCapacity- 待处理队列的最大容量parallelism- 并行处理的线程数。worker- 数据的处理者实例。monitor- 异常监控器,用于监控处理线程的异常。
-
AsyncExecutor
public AsyncExecutor(int queueCapacity, int parallelism, AsyncExecutor.Worker<E> worker, AsyncExecutor.ErrorMonitor monitor, ThreadFactory threadFactory) 创建一个异步并行处理器实例。- 参数:
queueCapacity- 待处理队列的最大容量parallelism- 并行处理的线程数。worker- 数据的处理者实例。monitor- 异常监控器,用于监控处理线程的异常。threadFactory- 处理线程的线程工厂。
-
-
方法详细资料
-
builder
-
start
public void start()启动处理,调用此方法后要调用close()方法释放资源。 -
close
public void close()停止处理并释放资源。 -
offer
将指定元素加入到处理队列中(如果立即可行且不会违反容量限制),成功时返回 true,如果当前没有可用的空间,则返回 false。- 参数:
data- 要处理的元素- 返回:
- 如果该元素已添加到处理队列,则返回 true;否则返回 false
-
offer
将指定元素插入处理队列中,在到达指定的等待时间前等待可用的空间(如果有必要)- 参数:
data- 要处理的元素timeout- 放弃之前等待的时间长度,以 unit 为时间单位unit- 确定如何解释 timeout 参数的 TimeUnit- 返回:
- 如果成功,则返回 true;如果在空间可用前超过了指定的等待时间,则返回 false
- 抛出:
InterruptedException- 如果在等待时被中断
-
getQueueSize
public int getQueueSize()获取当前处理队列的元素个数- 返回:
-
isActivated
public boolean isActivated()判断此处理器是否处于激活状态。- 返回:
- 如果处于激活状态返回 true,否则返回 false
-