`
i_feng
  • 浏览: 87528 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

MageShuai数据库连接池和线程池原理

阅读更多

数据库连接是一种关键的有限的昂贵的资源,在多用户的网页应用程序中体现得尤为突出。

     一个数据库连接对象均对应一个物理数据库连接,每次操作都打开一个物理连接,使用完都关闭连接,这样造成系

统的 性能低下。 数据库连接池的解决方案是在应用程序启动时建立足够的数据库连接,并讲这些连接组成一个连接池(

简单说:在一个“池”里放了好多半成品的数据库联接对象),由应用程序动态地对池中的连接进行申请、使用和释放。

对于多于连接池中连接数的并发请求,应该在请求队列中排队等待。并且应用程序可以根据池中连接的使用率,动态增

加或减少池中的连接数。
    连接池技术尽可能多地重用了消耗内存地资源,大大节省了内存,提高了服务器地服务效率,能够支持更多的客户

服务。通过使用连接池,将大大提高程序运行效率,同时,我们可以通过其自身的管理机制来监视数据库连接的数量、

使用情况等。

    1) 最小连接数是连接池一直保持的数据库连接,所以如果应用程序对数据库连接的使用量不大,将会有大量的数据

库连接资源被浪费;
    2) 最大连接数是连接池能申请的最大连接数,如果数据库连接请求超过此数,后面的数据库连接请求将被加入到等

待队列中,这会影响之后的数据库操作。

线程池:


来看一下线程池究竟是怎么一回事?其实线程池的原理很简单,类似于操作系统中的缓冲区的概念,它的流程如下:先

启动若干数量的线程,并让这些线程都处于睡眠状态,当客户端有一个新请求时,就会唤醒线程池中的某一个睡眠线程

,让它来处理客户端的这个请求,当处理完这个请求后,线程又处于睡眠状态。可能你也许会问:为什么要搞得这么麻

烦,如果每当客户端有新的请求时,我就创建一个新的线程不就完了?这也许是个不错的方法,因为它能使得你编写代

码相对容易一些,但你却忽略了一个重要的问题?性能!一个省级数据大集中的银行网络中心,高峰期每秒的客户端请

求并发数超过100,如果为每个客户端请求创建一个新线程的话,那耗费的CPU时间和内存将是惊人的,如果采用一个拥

有200个线程的线程池,那将会节约大量的的系统资源,使得更多的CPU时间和内存用来处理实际的商业应用,而不是频

繁的线程创建与销毁。

分享到:
评论

相关推荐

    对象池&线程池&数据库连接池

    对象池、线程池和数据库连接池都是资源复用机制的实例,它们有效地解决了频繁创建和销毁对象带来的开销,提高了系统的效率。以下是对这些概念的详细解释: 1. **对象池**: 对象池是一种设计模式,它的核心思想是...

    数据库连接池的图解原理

    数据库连接池是现代应用程序开发中的一个关键组件,它在提高数据库访问效率、管理资源和优化系统性能方面扮演着重要角色。本文将详细解释数据库连接池的图解原理,帮助你理解这一技术的核心概念。 首先,我们需要...

    C#高效数据库连接池源码

    数据库连接池是数据库管理中的重要概念,特别是在高并发和大数据量的应用场景下,它能显著提升性能并降低系统资源消耗。在C#编程环境中,我们可以使用自定义的数据库连接池来实现这一功能。本篇文章将深入探讨“C#...

    C# 数据库连接池 C# 数据库连接池

    4. **调整大小**:根据系统负载和数据库操作的繁忙程度,连接池可以动态地增加或减少连接的数量,以保持最佳性能。 5. **超时与回收**:连接池会设定每个连接的最大生命周期,超过这个时间未被使用的连接会被自动...

    数据库连接池技术详解

    对于多应用共享同一数据库的系统而言,可在应用层通过数据库连接的配置,实现数据库连接池技术。某一应用最大可用数据库连接数的限制,避免某一应用独占所有数据库资源。 在较为完备的数据库连接池实现中,可根据...

    Qt 多线程连接数据库——数据库连接池

    * 数据库连接池特点: * 获取连接时不需要了解连接的名字,连接池内部维护连接的名字 * 支持多线程,保证获取到的连接一定是没有被其他线程正在使用 * 按需创建连接,可以创建多个连接,可以控制连接的数量 * 连接...

    03-数据库连接池驱动_数据库连接池;驱动_

    本资源"03-数据库连接池驱动"包含了三种常用的数据库连接池驱动:C3P0、Druid和DBCP,它们都是为了优化数据库连接管理和复用而设计的。 首先,C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3...

    Java jdbc数据库连接池总结

    连接池的基本工作原理是:当应用程序需要建立数据库连接时,连接池管理器会检查当前是否有可用的连接,如果有,则返回一个可用的连接对象;否则,连接池管理器将创建一个新的连接对象,并将其添加到连接池中。应用...

    常用jdbc数据库连接jar包,数据库连接池jar包

    本资源集合了常用的JDBC数据库连接jar包,以及一些知名的数据库连接池实现,如dbcp和c3p0,这对于开发人员来说是非常宝贵的资源。 首先,让我们了解一下JDBC。JDBC提供了一套标准的API,包括接口和类,使得开发者...

    c# mysql数据库连接池实现

    数据库连接池是一种资源管理技术,它预先创建并维护一定数量的数据库连接,当应用需要时,可以从池中获取连接,使用完毕后归还而不是直接关闭,从而减少了频繁创建和销毁连接的开销。在.NET Core中,对于MySQL数据库...

    数据库连接池的工作原理

    需要根据应用的并发需求和数据库服务器的承受能力进行合理设置。 - **连接池预热**:在应用启动时,预先创建一部分连接,可以减少首次数据库访问的延迟。 - **连接池的缓存策略**:有些连接池实现会采用LRU(最近...

    Java数据库连接池的原理与应用.pdf

    Java数据库连接池的原理与应用 在Java开发领域,数据库连接池(Database Connection Pool,简称DBCP)是一种提高数据库访问性能、降低资源消耗的重要技术。它通过预先建立一定数量的数据库连接,存储在一个“池”中...

    代理模式之静态代理---数据库连接池对象实现原理

    至于"工具"标签,它表明代理模式和数据库连接池在实际开发中是作为工具类或库来使用的,可以帮助开发者更好地管理和优化数据库访问性能。开发者可以使用这些工具,而无需关心底层实现的复杂性。 总结,代理模式在...

    数据库连接池的基本原理

    ### 数据库连接池的基本原理深度解析 在现代软件开发中,数据库操作是极其常见...因此,深入理解和掌握数据库连接池的基本原理及其在JDBC3.0标准下的应用,对于任何从事数据库应用开发的技术人员而言都是至关重要的。

    数据库连接池java代码实现

    但理解连接池的基本原理和实现方式有助于我们更好地配置和使用这些库,以及在必要时进行定制化开发。 总结来说,数据库连接池通过Java代码实现的核心包括连接池的初始化、连接的获取与释放、以及资源的管理和监控。...

Global site tag (gtag.js) - Google Analytics