老师请问外部线程向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 的时候也就线程安全啦

0
2
qq_红_14
回复
qq_街没有尽头_0
为什么不可以多个线程对同一个队列操作。会有什么影响么
2020-06-16
共2条回复

Java读源码之Netty深入剖析

解析netty各大组件细节,百万级性能调优,设计模式实际运用

2334 学习 · 283 问题

查看课程