Mina2.0框架源码剖析(六)

Mina2.0框架源码剖析(六)

ID:40570072

大小:16.51 KB

页数:6页

时间:2019-08-04

Mina2.0框架源码剖析(六)_第1页
Mina2.0框架源码剖析(六)_第2页
Mina2.0框架源码剖析(六)_第3页
Mina2.0框架源码剖析(六)_第4页
Mina2.0框架源码剖析(六)_第5页
资源描述:

《Mina2.0框架源码剖析(六)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、上文的内容还有一些没有结尾,这篇补上。在ExpiringMap类中,使用了一个私有内部类ExpiringObject来表示待检查超时的对象,它包括三个域,键,值,上次访问时间,以及用于上次访问时间这个域的读写锁:        private K key;        private V value;        private long lastAccessTime;        private final ReadWriteLock lastAccessTimeLock = new ReentrantReadWriteLock();而Expiring

2、Map中包括了下述几个变量:  private final ConcurrentHashMap delegate;//超时代理集合,保存待检查对象    private final CopyOnWriteArrayList> expirationListeners;//超时监听者    private final Expirer expirer;//超时检查线程现在再来看看IoSession的一个抽象实现类AbstractIoSession。这是它的几个重要的成员变量:    p

3、rivate IoSessionAttributeMap attributes;//会话属性映射图    private WriteRequestQueue writeRequestQueue;//写请求队列    private WriteRequest currentWriteRequest;//当前写请求     当要结束当前会话时,会发送一个一个写请求CLOSE_REQUEST。而closeFuture这个CloseFuture会在连接关闭时状态被设置为”closed”,它的监听器是SCHEDULED_COUNTER_RESETTER。close和cl

4、oseOnFlush都是异步的关闭操作,区别是前者立即关闭连接,而后者是在写请求队列中放入一个CLOSE_REQUEST,并将其即时刷新出去,若要真正等待关闭完成,需要调用方在返回的CloseFuture等待public final CloseFuture close() {        synchronized (lock) {            if (isClosing()) {                return closeFuture;            } else {                closing = true;

5、            }        }        getFilterChain().fireFilterClose();//fire出关闭事件        return closeFuture;    }    public final CloseFuture closeOnFlush() {        getWriteRequestQueue().offer(this, CLOSE_REQUEST);        getProcessor().flush(this);        return closeFuture;    }     

6、下面来看看读数据的过程:public final CloseFuture close() {        synchronized (lock) {            if (isClosing()) {                return closeFuture;            } else {                closing = true;            }        }        getFilterChain().fireFilterClose();//fire出关闭事件        return c

7、loseFuture;    }    public final CloseFuture closeOnFlush() {        getWriteRequestQueue().offer(this, CLOSE_REQUEST);        getProcessor().flush(this);        return closeFuture;    }    private Queue getReadyReadFutures() {//返回可被读数据队列        Queue readyRe

8、adFutures =        

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。