
课程咨询: 400-996-5531
投诉建议: 400-111-8989
认真做教育 专心促就业
池化技术的应用在许多软件编程开发项目中都是会经常用到的一个编程开发技术,而本文我们就通过案例分析来简单了解一下,常见池化技术应用类型都有哪些。
1、线程池
线程池的原理很简单,类似于操作系统中的缓冲区的概念。线程池中会先启动若干数量的线程,这些线程都处于睡眠状态。当客户端有一个新的请求时,就会唤醒线程池中的某一个睡眠的线程,让它来处理客户端的这个请求,当处理完这个请求之后,线程又处于睡眠的状态。
2、内存池
如何更好地管理应用程序内存的使用,同时提高内存使用的频率,这是值得每一个开发人员深思的问题。内存池(MemoryPool)就提供了一个比较可行的解决方案。
内存池在创建的过程中,会预先分配足够大的内存,形成一个初步的内存池。然后每次用户请求内存的时候,就会返回内存池中的一块空闲的内存,并将这块内存的标志置为已使用。当内存使用完毕释放内存的时候,也不是真正地调用free或delete的过程,而是把内存放回内存池的过程,且放回的过程要把标志置为空闲。后,应用程序结束就会将内存池销毁,将内存池中的每一块内存释放。
内存池的优点:
减少内存碎片的产生,这个优点可以从创建内存池的过程中看出,当我们在创建内存池的时候,分配的都是一块块比较规整的内存块,减少内存碎片的产生。
提高了内存的使用频率。这个可以从分配内存和释放内存的过程中看出。每次的分配和释放并不是去调用系统提供的函数或操作符去操作实际的内存,而是在复用内存池中的内存。
内存池的缺点:
会造成内存的浪费,因为要使用内存池需要在一开始分配一大块闲置的内存,而这些内存不一定全部被用到。
3、数据库连接池
数据库连接池的基本思想是在系统初始化的时候将数据库连接作为对象存储在内存中,当用户需要访问数据库的时候,并非建立一个新的连接,而是从连接池中取出一个已建立的空闲连接对象。在使用完毕后,用户也不是将连接关闭,而是将连接放回到连接池中,以供下一个请求访问使用,而这些连接的建立、断开都是由连接池自身来管理的。
同时,还可以设置连接池的参数来控制连接池中的初始连接数、连接的上下限数和每个连接的大使用次数、大空闲时间等。当然,也可以通过连接池自身的管理机制来监视连接的数量、使用情况等。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。