-★出爺;3 发表于 2017-2-8 09:45:39

Tomcat 系统架构与设计模式(学习笔记一)

清单 2. StandardService. addConnector


public void addConnector(Connector connector) {
    synchronized (connectors) {
      connector.setContainer(this.container);
      connector.setService(this);
       Connector results[] = new Connector;
      System.arraycopy(connectors, 0, results, 0, connectors.length);
      results = connector;
      connectors = results;
      if (initialized) {
            try {
                connector.initialize();
            } catch (LifecycleException e) {
                e.printStackTrace(System.err);
            }
      }
      if (started && (connector instanceof Lifecycle)) {
            try {
                ((Lifecycle) connector).start();
            } catch (LifecycleException e) {
                ;
            }
      }
      support.firePropertyChange("connector", null, connector);
    }
}


上面是 addConnector 方法,这个方法也很简单,首先是设置关联关系,然后是初始化工作,开始新的生命周期。这里值得一提的是,注意 Connector 用的是数组而不是 List 集合,这个从性能角度考虑可以理解,有趣的是这里用了数组但是并没有向我们平常那样,一开始就分配一个固定大小的数组,它这里的实现机制是:重新创建一个当前大小的数组对象,然后将原来的数组对象 copy 到新的数组中,这种方式实现了类似的动态数组的功能,这种实现方式,值得我们以后拿来借鉴。
页: [1]
查看完整版本: Tomcat 系统架构与设计模式(学习笔记一)