亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? selectormanager.java

?? 著名服務(wù)器nio的源碼
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
                                SelectChannelEndPoint endpoint = newEndPoint(channel,this,key);                                key.attach(endpoint);                                endpoint.dispatch();                            }                            else                            {                                channel.register(_selector,SelectionKey.OP_CONNECT,att);                            }                        }                        else if (o instanceof ServerSocketChannel)                        {                            ServerSocketChannel channel = (ServerSocketChannel)o;                            channel.register(getSelector(),SelectionKey.OP_ACCEPT);                        }                        else                            throw new IllegalArgumentException(o.toString());                    }                    catch (CancelledKeyException e)                    {                        if (isRunning())                            Log.warn(e);                        else                            Log.debug(e);                    }                }                changes.clear();                long idle_next = 0;                long retry_next = 0;                long now=System.currentTimeMillis();                synchronized (this)                {                    _idleTimeout.setNow(now);                    _retryTimeout.setNow(now);                    if (_lowResourcesConnections>0 && _selector.keys().size()>_lowResourcesConnections)                        _idleTimeout.setDuration(_lowResourcesMaxIdleTime);                    else                         _idleTimeout.setDuration(_maxIdleTime);                    idle_next=_idleTimeout.getTimeToNext();                    retry_next=_retryTimeout.getTimeToNext();                }                // workout how low to wait in select                long wait = 1000L;  // not getMaxIdleTime() as the now value of the idle timers needs to be updated.                if (idle_next >= 0 && wait > idle_next)                    wait = idle_next;                if (wait > 0 && retry_next >= 0 && wait > retry_next)                    wait = retry_next;                    // Do the select.                if (wait > 10) // TODO tune or configure this                {                    long before=now;                    int selected=_selector.select(wait);                    now = System.currentTimeMillis();                    _idleTimeout.setNow(now);                    _retryTimeout.setNow(now);                    // Look for JVM bug                     if (selected==0 && wait>0 && (now-before)<wait/2 && _selector.selectedKeys().size()==0)                    {                        if (_jvmBug++>5)  // TODO tune or configure this                        {                            // Probably JVM BUG!                                                        Iterator iter = _selector.keys().iterator();                            while(iter.hasNext())                            {                                key = (SelectionKey) iter.next();                                if (key.isValid()&&key.interestOps()==0)                                {                                    key.cancel();                                }                            }                            try                            {                                Thread.sleep(20);  // tune or configure this                            }                            catch (InterruptedException e)                            {                                Log.ignore(e);                            }                        }                     }                    else                        _jvmBug=0;                }                else                 {                    _selector.selectNow();                    _jvmBug=0;                }                // have we been destroyed while sleeping\                if (_selector==null || !_selector.isOpen())                    return;                // Look for things to do                Iterator iter = _selector.selectedKeys().iterator();                while (iter.hasNext())                {                    key = (SelectionKey) iter.next();                                                            try                    {                        if (!key.isValid())                        {                            key.cancel();                            SelectChannelEndPoint endpoint = (SelectChannelEndPoint)key.attachment();                            if (endpoint != null)                                endpoint.doUpdateKey();                            continue;                        }                        Object att = key.attachment();                        if (att instanceof SelectChannelEndPoint)                        {                            SelectChannelEndPoint endpoint = (SelectChannelEndPoint)att;                            endpoint.dispatch();                        }                        else if (key.isAcceptable())                        {                            SocketChannel channel = acceptChannel(key);                            if (channel==null)                                continue;                            channel.configureBlocking(false);                            // TODO make it reluctant to leave 0                            _nextSet=++_nextSet%_selectSet.length;                            // Is this for this selectset                            if (_nextSet==_setID)                            {                                // bind connections to this select set.                                SelectionKey cKey = channel.register(_selectSet[_nextSet].getSelector(), SelectionKey.OP_READ);                                SelectChannelEndPoint endpoint=newEndPoint(channel,_selectSet[_nextSet],cKey);                                cKey.attach(endpoint);                                if (endpoint != null)                                    endpoint.dispatch();                            }                            else                            {                                // nope - give it to another.                                _selectSet[_nextSet].addChange(channel);                                _selectSet[_nextSet].wakeup();                            }                        }                        else if (key.isConnectable())                        {                            // Complete a connection of a registered channel                            SocketChannel channel = (SocketChannel)key.channel();                            boolean connected=false;                            try                            {                                connected=channel.finishConnect();                            }                            catch(Exception e)                            {                                connectionFailed(channel,e,att);                            }                            finally                            {                                if (connected)                                {                                    key.interestOps(SelectionKey.OP_READ);                                    SelectChannelEndPoint endpoint = newEndPoint(channel,this,key);                                    key.attach(endpoint);                                    endpoint.dispatch();                                }                                else                                {                                    key.cancel();                                }                            }                        }                        else                        {                            // Wrap readable registered channel in an endpoint                            SocketChannel channel = (SocketChannel)key.channel();                            SelectChannelEndPoint endpoint = newEndPoint(channel,this,key);                            key.attach(endpoint);                            if (key.isReadable())                                endpoint.dispatch();                                                   }                        key = null;                    }                    catch (CancelledKeyException e)                    {                        Log.ignore(e);                    }                    catch (Exception e)                    {                        if (isRunning())                            Log.warn(e);                        else                            Log.ignore(e);                        if (key != null && !(key.channel() instanceof ServerSocketChannel) && key.isValid())                        {                            key.interestOps(0);                            key.cancel();                        }                     }                }                                // Everything always handled                _selector.selectedKeys().clear();                // tick over the timers                Timeout.Task task=null;                synchronized (this)                {                    task=_idleTimeout.expired();                    if (task==null)                        task=_retryTimeout.expired();                }                // handle any expired timers                while (task!=null)                {                    task.expire();                    // get the next timer tasks                    synchronized(this)                    {                        if (_selector==null)                            break;                        task=_idleTimeout.expired();                        if (task==null)                            task=_retryTimeout.expired();                    }                }            }            catch (CancelledKeyException e)            {                Log.ignore(e);            }            finally            {                synchronized(this)                {                    _selecting=false;                }            }        }        /* ------------------------------------------------------------ */        public SelectorManager getManager()        {            return SelectorManager.this;        }        /* ------------------------------------------------------------ */        public long getNow()        {            return _idleTimeout.getNow();        }                /* ------------------------------------------------------------ */        public void scheduleIdle(Timeout.Task task)        {            synchronized (this)            {                if (_idleTimeout.getDuration() <= 0)                    return;                                task.schedule(_idleTimeout);            }        }        /* ------------------------------------------------------------ */        public void scheduleTimeout(Timeout.Task task, long timeout)        {            synchronized (this)            {                _retryTimeout.schedule(task, timeout);            }        }        /* ------------------------------------------------------------ */        public void wakeup()        {            Selector selector = _selector;            if (selector!=null)                selector.wakeup();        }        /* ------------------------------------------------------------ */        Selector getSelector()        {            return _selector;        }        /* ------------------------------------------------------------ */        void stop() throws Exception        {            boolean selecting=true;            while(selecting)            {                wakeup();                synchronized (this)                {                    selecting=_selecting;                }            }                        ArrayList keys=new ArrayList(_selector.keys());            Iterator iter =keys.iterator();            while (iter.hasNext())            {                SelectionKey key = (SelectionKey)iter.next();                if (key==null)                    continue;                EndPoint endpoint = (EndPoint)key.attachment();                if (endpoint!=null)                {                    try                    {                        endpoint.close();                    }                    catch(IOException e)                    {                        Log.ignore(e);                    }                }            }                        synchronized (this)            {                _idleTimeout.cancelAll();                _retryTimeout.cancelAll();                try                {                    if (_selector != null)                        _selector.close();                }                catch (IOException e)                {                    Log.ignore(e);                }                 _selector=null;            }        }    }}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩精品资源二区在线| 国产精品国产三级国产有无不卡| 日韩欧美资源站| 国产女主播在线一区二区| 亚洲成人动漫在线免费观看| 国产一区二区福利| 欧美精品欧美精品系列| 国产精品久久久久久久第一福利 | 成人a级免费电影| 欧美大片在线观看一区二区| 亚洲丝袜精品丝袜在线| 国产美女视频91| 欧美一区二区视频在线观看2022| 亚洲黄色免费电影| 99精品国产99久久久久久白柏| 日韩欧美激情四射| 国产午夜亚洲精品不卡| 白白色亚洲国产精品| 亚洲国产日韩av| 国产日产欧产精品推荐色| 欧美日韩亚洲综合在线| 久久99精品国产麻豆婷婷| 一区二区三区精品| 欧美色大人视频| 成人av网址在线观看| 欧美aaaaaa午夜精品| 亚洲自拍欧美精品| 国产精品不卡视频| 亚洲欧洲无码一区二区三区| 欧美一级欧美三级在线观看| 91麻豆自制传媒国产之光| 色偷偷一区二区三区| 欧美电影免费提供在线观看| 久久精品99久久久| 国产成人免费高清| 国产欧美久久久精品影院| 欧美日韩日本视频| 亚洲精品日日夜夜| 欧美日韩精品一区二区| 亚洲一区二区高清| 91精品国产综合久久小美女| 青青草成人在线观看| 久久午夜国产精品| 国产99久久久精品| 亚洲三级电影网站| 美女精品一区二区| 亚洲另类春色校园小说| 亚洲国产日韩精品| 麻豆国产精品一区二区三区 | 亚洲图片欧美激情| 欧美一区二区三区色| 91精品在线免费观看| 精品国产一区二区在线观看| 五月天中文字幕一区二区| 欧美中文字幕一二三区视频| 午夜欧美一区二区三区在线播放| 在线成人午夜影院| 国产一区二区毛片| 亚洲欧洲99久久| 777xxx欧美| 国产成人在线色| 一区二区三区国产精品| 欧美一区日韩一区| 波多野结衣精品在线| 亚洲伊人色欲综合网| 精品美女一区二区| 91毛片在线观看| 久久超碰97中文字幕| 国产精品二三区| 91精品国产免费| 99久久久久久| 久久91精品国产91久久小草| 亚洲乱码精品一二三四区日韩在线| 制服丝袜亚洲色图| 91麻豆国产福利在线观看| 久久国产剧场电影| 亚洲自拍偷拍欧美| 国产色产综合色产在线视频| 欧美少妇xxx| caoporm超碰国产精品| 美脚の诱脚舐め脚责91| 亚洲精品视频免费观看| 国产日韩精品一区二区三区| 欧美伦理影视网| 99精品视频免费在线观看| 免费观看91视频大全| 亚洲一区二区三区精品在线| 国产欧美一区二区三区沐欲| 亚洲色图视频网站| 久久久久久久久久美女| 911国产精品| 欧美色倩网站大全免费| 99国内精品久久| 国产宾馆实践打屁股91| 捆绑调教一区二区三区| 亚洲成人av在线电影| 亚洲欧美一区二区三区极速播放| 久久久久国产免费免费| 精品成人在线观看| 日韩三级视频在线观看| 欧美一区二区三区在线视频| 欧美三级电影一区| 欧美亚洲综合另类| 欧美日韩在线三级| 欧美日韩一区二区三区四区| www.色精品| 成人午夜激情视频| 丰满亚洲少妇av| 成人午夜av在线| 国产福利精品一区二区| 国产精品一级片在线观看| 国产成人免费网站| 成人av动漫网站| 91视频免费观看| 欧美性生活一区| 欧美伊人久久大香线蕉综合69| 欧美在线观看视频在线| 欧美三级电影在线观看| 欧美日本一道本| 欧美一卡在线观看| 26uuu国产电影一区二区| 久久综合国产精品| 中文字幕的久久| 亚洲激情自拍偷拍| 视频一区二区国产| 国模大尺度一区二区三区| 国产在线观看一区二区| 不卡的av电影| 欧美视频在线一区| 91精品国产91久久久久久一区二区 | 欧美一级理论片| 精品国产精品网麻豆系列 | 国产不卡视频在线观看| 99国内精品久久| 欧美巨大另类极品videosbest | 一区二区成人在线视频| 亚洲午夜激情av| 青青青伊人色综合久久| 国产老妇另类xxxxx| 99久久精品国产导航| 欧美三区在线视频| 日韩精品中文字幕在线一区| 国产欧美一区二区三区在线看蜜臀 | 一本一本大道香蕉久在线精品| 欧美视频精品在线| 久久久久久久综合色一本| 亚洲欧美日韩一区二区三区在线观看 | 国产精品乱人伦中文| 亚洲国产aⅴ成人精品无吗| 麻豆一区二区三区| 不卡一区二区在线| 欧美电影一区二区| 国产精品麻豆网站| 美国三级日本三级久久99| 不卡的av网站| 欧美成人三级在线| 亚洲国产日韩综合久久精品| 国产成人综合自拍| 5858s免费视频成人| 国产精品美女久久久久久久久久久| 午夜国产精品一区| 成年人国产精品| 精品成人私密视频| 亚洲第一精品在线| 成人黄色一级视频| 日韩欧美高清在线| 亚洲自拍另类综合| jiyouzz国产精品久久| 精品日产卡一卡二卡麻豆| 亚洲最新视频在线观看| 丁香一区二区三区| 欧美电影免费观看完整版| 午夜视频久久久久久| 色一情一乱一乱一91av| 欧美激情在线一区二区| 美女在线视频一区| 欧美精品一二三| 亚洲成人中文在线| 色播五月激情综合网| 一区在线中文字幕| 国产夫妻精品视频| 精品国产91乱码一区二区三区| 偷拍与自拍一区| 欧美日韩一区 二区 三区 久久精品| 久久久久九九视频| 经典三级在线一区| 精品国产乱码久久久久久牛牛| 丁香天五香天堂综合| 日韩av中文在线观看| 中文字幕一区在线| 7777精品伊人久久久大香线蕉经典版下载 | 久久97超碰色| 色噜噜久久综合| 亚洲国产成人午夜在线一区| 国产在线视频精品一区| 欧美人与z0zoxxxx视频| 亚洲成a人片在线不卡一二三区| 成人动漫一区二区| 欧美激情一二三区| 国产69精品久久777的优势|