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

wordpress 加盟 主题江门seo

wordpress 加盟 主题,江门seo,修改网站搜索缩略图,青浦华新网站建设文章目录 1.什么是池化技术2.池化技术的应用一、连接池二、线程池三、内存池 3.池化技术的总结 1.什么是池化技术 池化技术指的是提前准备一些资源,在需要时可以重复使用这些预先准备的资源。 在系统开发过程中,我们经常会用到池化技术。通俗的讲&am…

文章目录

    • 1.什么是池化技术
    • 2.池化技术的应用
      • 一、连接池
      • 二、线程池
      • 三、内存池
    • 3.池化技术的总结

1.什么是池化技术

    池化技术指的是提前准备一些资源,在需要时可以重复使用这些预先准备的资源。
    在系统开发过程中,我们经常会用到池化技术。通俗的讲,池化技术就是:把一些资源预先分配好,组织到对象池中,之后的业务使用资源从对象池中获取,使用完后放回到对象池中。即对象池对资源(线程、连接和内存)进行管理,这样做带来几个明显的好处:

    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.hkea.cn/news/44123/

相关文章:

  • php是网站开发的语言吗企业网站的作用
  • 网站站外优化怎么做企业推广app
  • 拉趣网站是谁做的威海网站制作
  • 做宣传海报的网站百度导航2023年最新版
  • 湖南做网站 磐石网络windows优化大师官方免费
  • 制作网站的最新软件如何优化关键词的方法
  • 东莞工作招聘网最新招聘搜索 引擎优化
  • 宁波俄语网站建设免费发广告的平台有哪些
  • 郑州外贸网站建设及维护营销软件商城
  • 泉州百度关键词排名广州网站营销优化qq
  • 怎么做wep网站营销推广活动方案
  • 展示型网站php官方app下载安装
  • 嘉祥网站建设广东省自然资源厅
  • 忘记网站后台密码网站排名软件推荐
  • 怎么查公司网站有没有被收录火爆产品的推广文案
  • 绵阳网站建设 经开区网络教学平台
  • wordpress阅读量没改7个湖北seo网站推广策略
  • 网站建设成功案例方案找培训机构的平台
  • 园林绿化网站建设百度关键词优化公司
  • 个人如何建设网站网络营销方式有哪些分类
  • 北京做百度网站建设电商平台如何推广运营
  • 电脑个人网站怎么做网络销售新手入门
  • 海口网站建设 小黄网络手机百度搜索
  • 太原百度网站建设网站应该如何进行优化
  • 烟台市做网站uc浏览网页版进入
  • 工程信息网站哪家做的较好提高工作效率心得体会
  • 建站平台入口徐州网站设计
  • 出口手工艺品网站建设方案站长统计app下载
  • 提升学历骗局武汉搜索引擎排名优化
  • wordpress+park主题上海全国关键词排名优化