我对Pool与Cache两个词的理解
来源:互联网 发布:黄金时代 知乎 编辑:程序博客网 时间:2024/05/16 04:55
Pool里的东东,一般都是创建起来开销比较大,线程不安全的,但是,同时又是取出无状态(每一个元素拿出来的时候都是一样的)的。
例如:JDBC Connection, Thread ...
说明:
1. 线程安全的无状态的东西是不需要Pool的,例如Servlet, Struts的Action,整个系统用一个实例就可以了(Singleton Pattern)。
2. 线程不安全的无状态的东西,如果创建起来花费不是很大,那么一般也不需要创建Pool
注意:Pool里的东西实际上是有状态的,因为整个生命周期中都无状态的东西,肯定是线程无关的。
而Cache里的东西,一般是创建或者生成开销比较大(例如:需要多次数据库查询),同时,是有状态的(每一个元素拿出来都是不一样的)
1. Cache一般来说都应该是线程安全的
2. 设计上要注意避免死锁
例如:JDBC Connection, Thread ...
说明:
1. 线程安全的无状态的东西是不需要Pool的,例如Servlet, Struts的Action,整个系统用一个实例就可以了(Singleton Pattern)。
2. 线程不安全的无状态的东西,如果创建起来花费不是很大,那么一般也不需要创建Pool
注意:Pool里的东西实际上是有状态的,因为整个生命周期中都无状态的东西,肯定是线程无关的。
而Cache里的东西,一般是创建或者生成开销比较大(例如:需要多次数据库查询),同时,是有状态的(每一个元素拿出来都是不一样的)
1. Cache一般来说都应该是线程安全的
2. 设计上要注意避免死锁
- 我对Pool与Cache两个词的理解
- 我对PGA、sharedpool 、library cache的理解
- 我对implement与abstract的理解
- 我对委托与事件的理解
- 我对委托与事件的理解
- 我对特征值与特征向量的理解
- 我对BFC的理解与总结
- 我对 缓冲(buffer)和 缓存(cache)的理解
- 深入理解Oracle中的shared pool与library cache组件及相关等待事件
- 深入理解Oracle中的shared pool与library cache组件及相关等待事件
- 我对部队军人的人生价值的理解与看法
- Buffer Cache与Shared Pool原理
- share pool 与buffer cache详细解读
- 我对【纹理颜色混合】与【ALPHA混合】的理解
- 我对【纹理颜色混合】与【ALPHA混合】的理解
- 我对【纹理颜色混合】与【ALPHA混合】的理解
- 我对阿凡达与现实社会的理解
- 对Silverlight同步与异步编程之我的理解
- linux下环境变量设置
- 关于java内部类和匿名内部类
- 寓言两则
- 递归函数汇总(一)
- 如何获得U盘的详细信息
- 我对Pool与Cache两个词的理解
- 递归函数汇总(二)
- 常用的Struts 2.0的标志(Tag)介绍
- TrackBack 的实现原理 及 asp.net代码
- TrackBack是什么?如何使用TrackBack?
- 我的空间,大家请进.http://hi.baidu.com/bangzhusoft
- 说说Blog中的Trackback(引用)功能
- 如何实现自动Trackback
- .net中正则表达式的客户端验证--javascript