对象池简介
- 池化技术应用广泛,如**内存池,线程池,连接池(网络链接池,数据库链接池)**等等
- • 由于在实际应用当做分配内存、创建进程、线程都会设计到一些系统调用,系统调用需要导致程序从用户态切换到内核态,是非常耗时的操作。因此,当程序中需要频繁的进行内存申请释放,进程、线程创建销毁等操作时,通常会使用内存池、进程池、线程池技术来提升程序的性能。
- • 池化对连接或线程的复用,并对复用的数量、时间等进行控制,从而使得系统的性能和资源消耗达到最优状态。
使用对象池的优势
- •在衔接节点上,无池结构时需要不断的创建和销毁新服务对象必将给造成系统资源的巨大开销,导致系统的性能下降,甚至系统资源耗尽。
- 使用池结构可以减少不必要的新服务对象的创建和销毁,用一个容器保存着各种需要的对象。对这些对象进行复用,从而降低系统资源开销、提高程序的响应速度、改善效率。
- 池是在资源使用时将使用率高且可以复用的对象保存在一个类似容器的地方,对这些对象进行复用,从而降低非必须的系统资源开销、提高程序的响应速度、改善效率。
对象池
对象池技术是一种常见的对象缓存手段。“对象”意味着池中的内容是一种结构化实体,这也就是一般意义上面向对象中的对象模型;“池”(或动词池化)意味着将有生命周期的对象缓存到"池子"中进行管理,即用即取。缓存的目的大多是为了提升性能,对象池技术的目的也即如此。所以,对象池技术的本质简单来说就是:将具有生命周期的结构化对象缓存到带有一定管理功能的容器中,以提高对象的访问性能。
- 应用: 处理网络连接是对象池使用最多的场景。比如一些RPC框架的NettyChannel缓存(如motan),以及数据库连接池的Connection缓存(如DBCP)等。除此之外,我们还可以利用对象池管理一些大对象,这些对象有着相对复杂的构造过程