- 博客(4)
- 资源 (2)
- 收藏
- 关注
原创 tomcat5源码解析一 PoolTcpEndpoint类
PoolTcpEndpoint类负责创建监听http连接端口的serversocket,并将得到得连接交给线程池中的线程处理。tomcat5实现的线程池是直接管理runnable对象,然后新生成的线程会wait,直到runnable的shouRun为true,即某个表示task的实例变量(toRun)被赋值,才会被notify,然后运行,运行完后又会将shouldrun设为false,调用returnController将自己注册成空闲的线程便于到时候threadpool快速找到一个空闲的线程,然后循环,
2013-08-01 20:38:45 2185
转载 深入理解Java内存模型(六)——final
与前面介绍的锁和volatile相比较,对final域的读和写更像是普通的变量访问。对于final域,编译器和处理器要遵守两个重排序规则:在构造函数内对一个final域的写入,与随后把这个被构造对象的引用赋值给一个引用变量,这两个操作之间不能重排序。初次读一个包含final域的对象的引用,与随后初次读这个final域,这两个操作之间不能重排序。下面,我们通过一些示例性的代码
2013-08-23 14:25:58 1799
转载 深入理解Java内存模型(四)——volatile
volatile的特性当我们声明共享变量为volatile后,对这个变量的读/写将会很特别。理解volatile特性的一个好方法是:把对volatile变量的单个读/写,看成是使用同一个监视器锁对这些单个读/写操作做了同步。下面我们通过具体的示例来说明,请看下面的示例代码:class VolatileFeaturesExample { volatile long vl = 0L
2013-08-23 14:25:08 2399
转载 Java NIO 选择器(Selector)的内部实现(poll epoll)
之前强调这么多关于linux内核的poll及epoll,无非是想让大家先有个认识:Java NIO中的选择器依赖操作系统内核的这些系统调用,我们这里只讲解与linux内核相关的NIO实现,当然,windows或其他操作系统实现大体上是类似的,相信大家也可以触类旁通。那么,本文从这里将从简到难,一步一步为大家讲解选择器的点点滴滴吧。选择器的宏观理解“有这么一种
2013-08-10 14:41:31 30663 3
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人