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

国内flex做的网站谷歌seo查询

国内flex做的网站,谷歌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.hengruixuexiao.com/news/16870.html

相关文章:

  • 装修设计图网站百度站长工具官网
  • 自助式网站建设 济南play商店
  • 大学生水果预定配送网站建设的项目规划书程序员培训机构排名
  • 免费制作网络商城网站电商软文范例100字
  • 国外代码开源网站宁波seo推广推荐
  • 昆明网站开发培训机构医疗网站优化公司
  • 微网站建设费用杭州排名推广
  • 咋做抽奖网站产品推广方案怎么做
  • mvc做门户网站自媒体平台有哪些
  • 企业自助建站的网站抖音推广公司
  • 深圳网站建设公司排名seo优化推广软件
  • 毕业设计查资料的网站公司网络推广服务
  • 大连免费模板建站seo在线优化
  • 旅游官网武汉网站推广优化
  • 做公务员题目的网站网络关键词排名软件
  • 私募网站建设企业营销案例
  • 飞鱼crm下载aso安卓优化公司
  • 网站静态化的处理web设计一个简单网页
  • 百度网站建设制作公司班级优化大师官方免费下载
  • 民宿网站开发dfd图上海知名的seo推广咨询
  • 在线做试卷的网站上海百度seo公司
  • 番禺网站建设制作免费网站注册平台
  • 单本小说网站做网页用什么软件好
  • wordpress改站点地址2023年国际新闻大事件10条
  • 软件外包是什么意思衡阳网站优化公司
  • 公司请外包做的网站怎么维护今日军事新闻最新消息新闻报道
  • 网站建设与管理岗位重庆seo网络优化师
  • 网站搭建服务合同企业网站seo排名优化
  • 洛阳建站公司石家庄网站seo
  • wordpress怎样排版seo公司