老师请问外部线程向NioEventLoop添加定时任务的时候是如何保证线程安全的
来源:4-10 -reactor线程任务的执行

ice_wolf
2020-03-09
<V> ScheduledFuture<V> schedule(final ScheduledFutureTask<V> task) {
if (inEventLoop()) {
scheduledTaskQueue().add(task);
} else {
//这里每次外部调用都新开线程去执行添加操作的话怎么保证放入PriotiryQueue的线程安全呢?
execute(new Runnable() {
@Override
public void run() {
scheduledTaskQueue().add(task);
}
});
}
return task;
}
写回答
1回答
-
闪电侠
2020-03-10
这里是把添加任务A这个事情包装成一个任务B,然后执行 B 的时候是线程安全的,那么执行 A 的时候也就线程安全啦
022020-06-16
相似问题