Chapter 2 - Jetty读取配置文件和Loader(3)

编程技术  /  houtizong 发布于 3年前   46
Server的启动

AbstractLifeCycle类实现了LifeCycle接口(start(), stop()),并提供了doStart()和doStop()方法

    public final void start() throws Exception    {        synchronized (_lock)        {            try            {                if (_state == STARTED || _state == STARTING)                    return;                setStarting();                doStart();                setStarted();            }            // code omitted        }    }


AbstractLifeCycle的子类需要重写doStart()和doStop()方法,如Server类:

    protected void doStart() throws Exception    {        for (int i=0;_realms !=null && i<_realms.length; i++)        {            if (_realms[i] instanceof LifeCycle)                ((LifeCycle)_realms[i]).start(); // 启动realms        }        Iterator itor = _dependentLifeCycles.iterator();        while (itor.hasNext())        {               try            {                ((LifeCycle)itor.next()).start(); // 启动依赖组件            }            catch (Throwable e) {mex.add(e);}        }                if (_threadPool==null)        {            QueuedThreadPool tp=new QueuedThreadPool();            setThreadPool(tp); // 设置线程池        }                if (_sessionIdManager!=null)            _sessionIdManager.start(); // 启动会话ID管理器                try        {            if (_threadPool instanceof LifeCycle)                ((LifeCycle)_threadPool).start(); // 启动线程池        }         catch(Throwable e) { mex.add(e);}                try         {             super.doStart();         }         catch(Throwable e)         {             Log.warn("Error starting handlers",e);        }                if (_connectors!=null)        {            for (int i=0;i<_connectors.length;i++)            {                try{_connectors[i].start();} // 启动连接器                catch(Throwable e)                {                    mex.add(e);                }            }        }        mex.ifExceptionThrow();    }

请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!

留言需要登陆哦

技术博客集 - 网站简介:
前后端技术:
后端基于Hyperf2.1框架开发,前端使用Bootstrap可视化布局系统生成

网站主要作用:
1.编程技术分享及讨论交流,内置聊天系统;
2.测试交流框架问题,比如:Hyperf、Laravel、TP、beego;
3.本站数据是基于大数据采集等爬虫技术为基础助力分享知识,如有侵权请发邮件到站长邮箱,站长会尽快处理;
4.站长邮箱:[email protected];

      订阅博客周刊 去订阅

文章归档

文章标签

友情链接

Auther ·HouTiZong
侯体宗的博客
© 2020 zongscan.com
版权所有ICP证 : 粤ICP备20027696号
PHP交流群 也可以扫右边的二维码
侯体宗的博客