简单介绍一下线程池和数据库连接池的原理
2011-08-09 15:25 zhongguoren666 CSDN博客
我要评论(0) 字号:
T |
T
本文我们简单介绍了一下数据库连接池和线程池的工作原理,希望能够对您有所帮助。
AD: 51CTO云计算架构师峰会 抢票进行中!
当客户端请求的数据量比较大的时候,使用线程池可以节约大量的系统资源,使得更多的CPU时间和内存可以高效地利用起来。而数据库连接池的使用则将大大提高程序运行效率,同时,我们可以通过其自身的管理机制来监视数据库连接的数量、使用情况等。本文我们主要就介绍一下线程池和数据库连接池的原理,接下来我们一起来了解一下这一部分内容。
线程池的原理:
其实线程池的原理很简单,类似于操作系统中的缓冲区的概念,它的流程如下:先启动若干数量的线程,并让这些线程都处于睡眠状态,当客户端有一个新请求时,就会唤醒线程池中的某一个睡眠线程,让它来处理客户端的这个请求,当处理完这个请求后,线程又处于睡眠状态。可能你也许会问:为什么要搞得这么麻烦,如果每当客户端有新的请求时,我就创建一个新的线程不就完了?这也许是个不错的方法,因为它能使得你编写代码相对容易一些,但你却忽略了一个重要的问题?那就是性能!就拿我所在的单位来说,我的单位是一个省级数据大集中的银行网络中心,高峰期每秒的客户端请求并发数超过100,如果为每个客户端请求创建一个新线程的话,那耗费的CPU时间和内存将是惊人的,如果采用一个拥有200个线程的线程池,那将会节约大量的系统资源,使得更多的CPU时间和内存用来处理实际的商业应用,而不是频繁的线程创建与销毁。
数据库连接池的原理:
数据库连接是一种关键的有限的昂贵的资源,这一点在多用户的网页应用程序中体现得尤为突出。
一个数据库连接对象均对应一个物理数据库连接,每次操作都打开一个物理连接,使用完都关闭连接,这样造成系统的性能低下。 数据库连接池的解决方案是在应用程序启动时建立足够的数据库连接,并讲这些连接组成一个连接池(简单说:在一个“池”里放了好多半成品的数据库联接对象),由应用程序动态地对池中的连接进行申请、使用和释放。对于多于连接池中连接数的并发请求,应该在请求队列中排队等待。并且应用程序可以根据池中连接的使用率,动态增加或减少池中的连接数。
连接池技术尽可能多地重用了消耗内存地资源,大大节省了内存,提高了服务器地服务效率,能够支持更多的客户服务。通过使用连接池,将大大提高程序运行效率,同时,我们可以通过其自身的管理机制来监视数据库连接的数量、使用情况等。
1)最小连接数是连接池一直保持的数据库连接,所以如果应用程序对数据库连接的使用量不大,将会有大量的数据库连接资源被浪费;
2)最大连接数是连接池能申请的最大连接数,如果数据库连接请求超过此数,后面的数据库连接请求将被加入到等待队列中,这会影响之后的数据库操作。
关于数据库连接池和线程池的原理的介绍就到这里了,希望本次的介绍能够带给您一些收获!
分享到:
相关推荐
在Linux 系统下面用C 语言实现的高并发服务器的代码,具体用到了Epoll,线程池,数据库连接池。 具体可以看下连接http://blog.csdn.net/wuyuxing24/article/details/48758927
最简单高效的JAVA对象池、线程池、以及使用对象池技术实现的数据库连接池 已在生产运行5年以上的代码 若有任何问题请与我联系
* 数据库连接池特点: * 获取连接时不需要了解连接的名字,连接池内部维护连接的名字 * 支持多线程,保证获取到的连接一定是没有被其他线程正在使用 * 按需创建连接,可以创建多个连接,可以控制连接的数量 * 连接...
durid数据库连接池的使用方式,定义了工具类,可以通过durid方式访问数据库,实现对数据库的添加
基于MINA架构实现的UDP接收服务器,支持对mysql数据库的连接池插入查找操作。数据接收采用MINA,处理使用线程池并结合数据库连接池实现对发送数据的储存。
Delphi数据库操作函数的封装,数据持久层(连接池),很不错的。
实现的高并发服务器的代码,使用的是C语编写的,用到了Epoll,线程池,数据库连接池。
在Linux 系统下面用C 语言实现的高并发服务器的代码,具体用到了Epoll,线程池,数据库连接池
同个字符串,查找所在数据库的表及字段名称,主要用于不熟悉的程序,快速查找相关字段等信息,快速了解数据库结构。 里面用到线程池和数据库连接池,为了加快搜索速度,而且嵌入文件查找工具
private String dbDiv = "" // 数据库驱动 private String dbUrl = "" // 数据 URL ... pooledConnectionVector = null // 存放连接池中数据库连接的向量 , 初始时为 null 存放的对象为 PooledConnection 型
采用线程池 连接池 数据库 采用mysql,listcontr控件 右键菜单 此程序仅供学习 功能 增删改查学生,基本上各种非法操作验证都加了
内容涉及到线程池,数据库连接池,状态机转换,是比较完整的网页服务器,可以在浏览器注册、登录以及浏览视频等
下面小编就为大家带来一篇基于tomcat的连接数与线程池详解。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
was的性能优化主要从JVM、线程池、数据库连接池入手处理
针对大规模服务器集群监控系统域大小...采用自适应的线程池和数据库连接池可降低监控任务的开销,加快执行任务的响应时间。监控CPU利用率的测试结果表明,系统执行单任务的响应时间为128ms,20个任务的响应时间为242ms
使用IOCP搭建的网络引擎,支持内存池,线程池,数据库连接池,实时加密等等。简单好用!
管理系统是一种通过计算机技术实现的用于组织、监控和控制各种活动的软件系统。这些系统通常被设计用来提高效率、减少错误、加强安全性,同时提供数据和信息支持。以下是一些常见类型的管理系统: 学校管理系统: ...
这个是连接池,首先配置jdbc.properties文件,然后执行TestDbPool的main方法
批量读取excel文件并利用dbcp连接池写入数据库
第十四节 编写一个简单的数据库连接池 74 14.1 为什么要使用数据库连接池 74 14.2 数据库连接池雏形 74 14.2 数据库连接池优化 77 14.2.1 对线程池加锁 77 14.2.2 连接不够用时抛出异常 77 14.3 数据库连接池之代理...