当前位置: 首页 > news >正文

一站式网站建设行业长沙网站制作作

一站式网站建设行业,长沙网站制作作,简单网页设计模板html,烟台做外贸网站建设文章目录 1.什么是池化技术2.池化技术的应用一、连接池二、线程池三、内存池 3.池化技术的总结 1.什么是池化技术 池化技术指的是提前准备一些资源#xff0c;在需要时可以重复使用这些预先准备的资源。 在系统开发过程中#xff0c;我们经常会用到池化技术。通俗的讲在需要时可以重复使用这些预先准备的资源。     在系统开发过程中我们经常会用到池化技术。通俗的讲池化技术就是把一些资源预先分配好组织到对象池中之后的业务使用资源从对象池中获取使用完后放回到对象池中。即对象池对资源线程、连接和内存进行管理这样做带来几个明显的好处 1.资源重复使用 减少了资源分配和释放过程中的系统消耗。比如在IO密集型的服务器上并发处理过程中的子线程或子进程的创建和销毁过程带来的系统开销将是难以接受的。所以在业务实现上通常把一些资源预先分配好如线程池数据库连接池Redis连接池HTTP连接池等来减少系统消耗提升系统性能。 2.可以对资源的整体使用做限制。这个好理解相关资源预分配且只在预分配是生成后续不再动态添加从而限制了整个系统对资源的使用上限。类似一个令牌桶的功能。 3.池化技术分配对象池通常会集中分配这样有效避免了碎片化的问题。 2.池化技术的应用 一、连接池 连接池的原理是通过重用现有连接来减少创建新连接的开销提高应用程序访问数据库的效率。如果使用连接池的话每一次创建连接数据库都要经过三次握手在使用完毕后关闭连接需要经过四次握手。这一过程大大影响系统的性能。       连接池技术通常用于数据库连接管理它的核心思想是预先创建一定数量的数据库连接并将这些连接保存在一个“池”中。当应用程序需要访问数据库时它不是直接创建一个新的连接而是从连接池中获取一个已经存在的连接。使用完毕后这个连接不会被关闭而是被释放回连接池以供其他请求重复使用。     1)连接的预创建和缓存连接池启动时会根据配置初始化一定数量的数据库连接并缓存在内存中。     2)连接的分配和回收当应用程序需要数据库连接时连接池会提供一个已经建立好的连接。应用程序使用完毕后连接不会真正关闭而是被归还到连接池中以便再次使用。     3)连接的管理连接池还会负责维护连接的健康状况比如定期检查连接是否有效以及在必要时创建新的连接或淘汰旧的连接。     4)资源的优化利用由于创建新的数据库连接通常伴随着较大的系统开销如网络通信、认证等使用连接池可以显著减少这些开销因为连接可以被多个请求重复使用。     5)性能的提升连接池减少了频繁建立和关闭连接的操作从而降低了延迟提高了应用程序的整体性能。     6)并发的支持连接池通常设计为线程安全的能够支持多线程或多进程环境下的并发访问。     7)灵活性和可配置性连接池的大小即同时保持的最大连接数通常是可配置的可以根据应用程序的需求和数据库的性能来调整。 注意在后端开发中在循环内连接数据库的大大影响数据库性能的即使有足够的连接数依然有可能耗尽连接数。比如在循环语句中进行数据的增删改查操作。 二、线程池 本文将以java中的线程池为例详细介绍线程池的概念和工作原理以及参数设置。以及开发注意事项。     利用池化技术思想来管理和复用线程以提高多任务处理的效率和性能。     线程池是一种资源池它的目的是优化和管理线程的使用避免因为频繁创建和销毁线程而导致的资源浪费和性能开销。 关键执行步骤     1).当任务来了之后判断线程池中实际线程数是否小于核心线程数如果小于就直接创建线程并执行任务。     2).当实际线程数大于核心线程数它会判断任务队列是否已满如果未满直接将任务存放队列即可。     3).判断线程池的实际线程数是否大于最大线程数如果小于最大线程数直接创建线程执行任务实际线程数已经等于最大线程数那么会直接执行拒绝策略。     开发中的注意事项     在开发中请要使用显性定义一个线程也不要在开发使用java中juc包中的方法创建线程必须使用线程池。SpringBoot定义线程池代码如下 Configuration public class ExecutorConfig {private int corePoolSize 5;private int maxPoolSize 50;Beanpublic Executor workAsync() {ThreadPoolTaskExecutor executor new ThreadPoolTaskExecutor();//配置核心线程数executor.setCorePoolSize(corePoolSize);//配置最大线程数executor.setMaxPoolSize(maxPoolSize);//配置队列大小int queueCapacity 2000;executor.setQueueCapacity(queueCapacity);//配置线程池中的线程的名称前缀executor.setThreadNamePrefix(workAsync-);//rejection-policy当pool已经达到max size的时候如何处理新任务CALLER_RUNS不在新线程中执行任务而是由调用者所在的线程来执行executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());executor.initialize();return executor;}} 使用线程时在方法上添加注解即可声明某方法为异步即使用线程池 Async(workAsync)三、内存池 内存池的原理主要是通过预先分配一定量的内存来减少程序运行时申请和释放内存的开销从而提高整体性能。 内存池技术的核心在于它能够有效地管理内存资源。具体来说内存池的原理包括以下几个方面 1、减少内存管理的开销内存池通过一次性申请一大块内存减少了频繁向操作系统申请和释放内存的开销这在程序需要大量小块内存时尤其有效。     2、防止内存碎片内存池通常分配固定大小的内存块这样可以避免因频繁的内存分配和释放导致的内存碎片问题内存碎片会导致内存利用率降低影响程序性能。     3、提高程序性能内存池提供了一种高效的内存分配方式尤其是对于频繁进行内存分配的程序使用内存池可以明显提升运行效率。     4、自定义内存管理机制内存池允许开发者在给定的内存缓冲区上建立自己的内存管理机制根据程序的具体需求来分配和释放内存这可以进一步减少内存管理的开销。 3.池化技术的总结 池化技术是一种资源管理优化策略用于提高应用程序的性能和响应能力。它通过重用那些创建、初始化或销毁成本较高的资源来实现这一目的。
http://www.w-s-a.com/news/554860/

相关文章:

  • 营销型门户网站建设浏览器下载免费大全
  • 快三网站开发推广普通话手抄报内容50字
  • 沈阳专业做网站开发公司asp网站搭建教程
  • 网站建设代码福州小程序开发平台
  • 了解做房产广告的网站手机版官方网站的建设
  • 如何与别的网站做友情链接做网站排名大概要多少钱
  • 东莞市锂电池网站建设HTML5怎么做自适应网站
  • 江苏城乡建设学校网站群晖建立wordpress
  • wordpress导入网站模板seo自学网官网
  • 购物网站服务器带宽北京网站开发周期
  • 同性做视频网站网站怎么添加栏目
  • 新余网站设计seo自学网站
  • 新乡个人网站建设价格wordpress数据插件
  • 你是网站设计有限公司的项目经理网站推广的重要性
  • 网站定制开发怎么写泸州设计公司有哪些
  • 上海网站建设zj kt迅速编程做网站
  • 郑州服装 网站建设网站栏目合理性
  • 平面设计在线网站最新汽油价格调整最新消息
  • 刷单网站建设wordpress缩略图 裁剪
  • 视差 网站泰州公司做网站
  • 广州网站优化系统怎么做淘客网站
  • 类似凡科互动的网站wordpress网站下载
  • 临沂网站制作公司安卓app开发实例教程
  • 泰州做网站 泰公网络科技公司网站升级中html
  • 如何做授权网站网站设计心得
  • 网站排名快速上升wordpress自动标签页
  • 做的好的手机网站有哪些万网域名交易
  • 网站怎么做漂亮点做陶瓷的公司网站
  • 软件开发设计制作网站下载自己怎么做视频收费网站
  • 江苏省建设安全协会网站天津网站建设哪家公司好