| DefaultEventExecutorChooserFactory根据线程数创建具体的EventExecutorChooser,线程数如果等于2^n,可使用按位与替代取模运算,节省cpu的计算资源,见源码: @SuppressWarnings("unchecked")  @Override  public EventExecutorChooser newChooser(EventExecutor[] executors) {      if (isPowerOfTwo(executors.length)) {          return new PowerOfTowEventExecutorChooser(executors);      } else {          return new GenericEventExecutorChooser(executors);      }  }       private static final class PowerOfTowEventExecutorChooser implements EventExecutorChooser {          private final AtomicInteger idx = new AtomicInteger();          private final EventExecutor[] executors;            PowerOfTowEventExecutorChooser(EventExecutor[] executors) {              this.executors = executors;          }            @Override          public EventExecutor next() {              return executors[idx.getAndIncrement() & executors.length - 1];          }      }        private static final class GenericEventExecutorChooser implements EventExecutorChooser {          private final AtomicInteger idx = new AtomicInteger();          private final EventExecutor[] executors;            GenericEventExecutorChooser(EventExecutor[] executors) {              this.executors = executors;          }            @Override          public EventExecutor next() {              return executors[Math.abs(idx.getAndIncrement() % executors.length)];          }      } 
 newChild(executor, args)的创建细节,见下: (编辑:南平站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |