| 限定符和类型 | 字段和说明 |
|---|---|
protected IActorExecutor |
executor |
| 构造器和说明 |
|---|
Actor(ActorManager parent) |
| 限定符和类型 | 方法和说明 |
|---|---|
Future<?> |
addLoopTask(LoopScheduledTask task)
添加定时循环执行的任务
|
Future<?> |
addTask(ScheduledTask task) |
boolean |
cancelTask(String name,
boolean mayInterruptIfRunning)
取消指定名称的任务
|
<T> Future<T> |
execute(Callable<T> task)
立即将任务提交到队列中
|
Future<?> |
execute(Runnable task)
保证同一Session中的任务必须在同一线程中顺序执行
判断Submiter是否为过渡状态,如果是过渡状态
则任务不直接提交到Executor执行队列中,而且是提交到过渡任务队列中
当submiter切换Executor完毕后,将过渡任务队列中的内容提交到新的Executor执行。
|
protected void |
finalize() |
ActorState |
getActorState() |
IActorExecutor |
getExecutor()
获取actor的执行Executor(线程)
|
long |
getId()
actor unique ID
|
Future<?> |
scheduleAtFixedRateTask(Runnable task,
long delay,
long period,
TimeUnit unit) |
Future<?> |
scheduledTask(Callable<?> task,
long delay,
TimeUnit unit)
延时将任务提交到队列中
|
Future<?> |
scheduledTask(Runnable task,
long delay,
TimeUnit unit)
延时将任务提交到队列中
|
Future<?> |
scheduleWithFixedDelayTask(Runnable task,
long delay,
long period,
TimeUnit unit) |
void |
setExecutor(IActorExecutor executor)
如果是切换Executor,在切换Executor之前,必须将State设置为SubmiterState.TRANSITIVE
|
void |
switchExecutor(IActorExecutor executor)
设置actor执行Executor
用于切换工作场景时,切换执行线程,比如用户进入某个房间,则要设置为房间的执行线程,这样就消除多线程的问题)
|
protected volatile IActorExecutor executor
public Actor(ActorManager parent)
public IActorExecutor getExecutor()
IActorgetExecutor 在接口中 IActorpublic void setExecutor(IActorExecutor executor)
setExecutor 在接口中 IActorpublic void switchExecutor(IActorExecutor executor)
IActorswitchExecutor 在接口中 IActorpublic ActorState getActorState()
getActorState 在接口中 IActorpublic Future<?> execute(Runnable task)
public Future<?> scheduledTask(Runnable task, long delay, TimeUnit unit)
IActorscheduledTask 在接口中 IActortask - 任务delay - 延迟时间unit - 时间单位public Future<?> scheduleAtFixedRateTask(Runnable task, long delay, long period, TimeUnit unit)
public Future<?> scheduleWithFixedDelayTask(Runnable task, long delay, long period, TimeUnit unit)
public Future<?> scheduledTask(Callable<?> task, long delay, TimeUnit unit)
IActorscheduledTask 在接口中 IActorpublic Future<?> addLoopTask(LoopScheduledTask task)
IActoraddLoopTask 在接口中 IActortask - 添加定时循环执行的任务public Future<?> addTask(ScheduledTask task)
public boolean cancelTask(String name, boolean mayInterruptIfRunning)
cancelTask 在接口中 IActorname - 任务唯一标示名 @see com.jcwx.frm.current.scheduled.ScheduledTask#getName()mayInterruptIfRunning - 是否允许任务线程正在执行时中断Copyright © 2016. All rights reserved.