请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

老师请问外部线程向NioEventLoop添加定时任务的时候是如何保证线程安全的

<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;
 }

正在回答 回答被采纳积分+3

1回答

闪电侠 2020-03-10 12:26:37

这里是把添加任务A这个事情包装成一个任务B,然后执行 B 的时候是线程安全的,那么执行 A 的时候也就线程安全啦

0 回复 有任何疑惑可以回复我~
  • 这样做不是多个线程对同一个队列进行操作么?
    回复 有任何疑惑可以回复我~ 2020-03-30 18:09:34
  • 为什么不可以多个线程对同一个队列操作。会有什么影响么
    回复 有任何疑惑可以回复我~ 2020-06-16 17:15:37
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信