Archive

Posts Tagged ‘异步IO’

Tomcat的Connector:Coyote

5月 20th, 2013 1 comment

上一篇博文讲了Tomcat的系统架构,今天花了一天时间研究了下coyote的源码,大致对普通IO版本有所了解。被同学提醒后发现,Tomcat6已经支持异步IO了,但默认是普通IO版本,需要在Connector的protocol参数中定义为Http11NioProtocol才开启异步IO模式。

主要的代码,Socket的服务在org.apache.tomcat.util.net.JIoEndpoint类,解析处理HTTP请求在org.apache.coyote.http11包的Http11Protocol类和Http11Processor类,org.apache.catalina.connector.CoyoteAdapter负责连接Connector模块(coyote)和Container模块。

线程池默认用的JIoEndpoint类中的子类WorkerStack,若在server.xml配置使用了Executor,则使用org.apache.catalina.core.StandardThreadExecutor(对ThreadPoolExecutor的一层包装)。并发量高的情况下Executor的效率会高一些。 阅读更多…

Java学习之IO与NIO篇

8月 5th, 2010 3 comments

Java的IO相较于其他语言,感觉是比较抽象和复杂的,当然等你理解了它并且熟练了,它的强大性就马上体现出来了。其实本来只是想写nio的,把io也顺带理一下吧。

Java的io最重要的一个概念就是流,就像一个水管插在文件和终端之间,每个字节都是一滴水,按顺序单方向地流动,这样理解不知道是不是容易些?流主要分以下几种类型:
阅读更多…