请稍等 ...
×

采纳答案成功!

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

NioEventLoop的run方法是无限循环,那后续的逻辑如何执行呢

execute方法是先执行startThread()再执行addTask(task),startThread就是调用了run方法,如果run方法是死循环的话,addTask方法岂不是永远无法被调用

正在回答

1回答

startThread 不是在当前的线程上执行,而是会重新开一个线程,addTask 的调用线程与执行死循环的线程不是同一个线程

0 回复 有任何疑惑可以回复我~
  • 提问者 weixin_慕少8381929 #1
    明白了,忽略了这个,非常感谢!
    回复 有任何疑惑可以回复我~ 2020-06-13 14:21:39
  • boolean inEventLoop = inEventLoop();
            if (inEventLoop) {
                addTask(task);
            }
    老师 您好,那这里不是判断如果是当前线程在执行,才会把任务放到队列,那执行addTask的不应该是当前eventloop对应的线程吗
    回复 有任何疑惑可以回复我~ 2021-03-22 21:24:00
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信