- 博客(7)
- 资源 (10)
- 问答 (1)
- 收藏
- 关注
原创 tomcat 9.0源码分析之NioEndpoint —— Reactor多线程模型实现
概述tomcat的底层网络NIO通信基于主从Reactor多线程模型。它有三大线程组分别用于处理不同的逻辑:Acceptor线程:等待和接收客户端连接。在接收到连接后,创建SocketChannel并将其注册到poller线程。 poller线程:将SocketChannel放到selector上注册读事件,轮询selector,获取就绪的SelectionKey,并将就绪的Sele...
2015-05-29 12:31:56 2009
原创 jdk1.7 HashMap的死循环与jdk1.8 HashMap的优化
因为在放入新的位置时,HashMap会将Entry对象不断的插入链表的头部。插入头部也主要是为了防止尾部遍历,否则这对key的HashCode相同的Entry每次添加还要定位到尾节点。如果条件竞争发送了,可能会出现环形链表,之后当我们get(key)操作时,就有可能发生死循环
2015-05-28 15:43:54 2530 1
原创 tomcat 9.0源码分析之Endpoint的启动流程
Connector根据配置的协议名称初始化protocolHandler/** * Coyote protocol handler. */protected final ProtocolHandler protocolHandler;public Connector(String protocol) { boolean aprConnector = ...
2015-05-27 14:45:17 506
转载 jdk1.8 ConcurrentHashMap源码分析
为什么要用ConcurrentHashMapHashMap线程不安全,而Hashtable是线程安全,但是它使用了synchronized进行方法同步,插入、读取数据都使用了synchronized,当插入数据的时候不能进行读取(相当于把整个Hashtable都锁住了,全表锁),当多线程并发的情况下,都要竞争同一把锁,导致效率极其低下。而在JDK1.5后为了改进Hashtable的痛点,Con...
2015-05-27 12:55:01 701
转载 HashMap实现原理
原文出处: 李大辉的博客HashMap概述HashMap是基于哈希表的Map接口的非同步实现。此实现提供所有可选的映射操作,并允许使用null值和null键。此类不保证映射的顺序,特别是它不保证该顺序恒久不变。HashMap的数据结构在Java编程语言中,最基本的结构就是两种,一个是数组,另外一个是模拟指针(引用),所有的数据结构都可以用这两个基本结构来构造的,HashMap也不例外。HashMa...
2015-05-25 12:54:24 1017
原创 InputStream、InputStreamReader和Reader的关系(适配器模式)
InputStream:得到的是字节输入流,InputStream.read("filename")之后,得到字节流Reader:读取的是字符流InputStreamReader:从字节到字符的桥梁。InputStreamReader(InputStream.read("filename"));reader.read(InputStreamReader(InputStream in));便可从字节...
2015-05-23 14:52:23 1220
原创 tomcat connector 9.0源码分析之Response将数据写出到socketChannel
概述org.apache.catalina.connector.Response是org.apache.coyoter.Response的包装器。 protected org.apache.coyote.Response coyoteResponse;/** * Set the Coyote response. * * @param coyote...
2015-05-18 16:09:19 1144
viewpager实现页面导航之三
2015-07-22
viewpager与预编译的点布局实现页面导航效果
2015-07-20
导入第三方类库却出现the importXXX can not be resolved
2015-06-04
TA创建的收藏夹 TA关注的收藏夹
TA关注的人