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

怎么维护网站电子商务与网站建设策划书

怎么维护网站,电子商务与网站建设策划书,郑州新感觉会所网站哪里做的,好大夫官方网站网上预约挂号线程池是一种线程管理机制,通过预先创建一定数量的线程并复用它们,避免频繁创建和销毁线程带来的资源开销,是并发编程中的核心组件。以下从核心概念、工作机制、关键参数等方面进行总结:一、线程池的核心作用降低资源消耗&#xf…

线程池是一种线程管理机制,通过预先创建一定数量的线程并复用它们,避免频繁创建和销毁线程带来的资源开销,是并发编程中的核心组件。以下从核心概念、工作机制、关键参数等方面进行总结:

一、线程池的核心作用

  1. 降低资源消耗:线程复用减少线程创建(涉及内核态操作)和销毁的开销。
  2. 控制并发强度:避免无限制创建线程导致的CPU切换过载、内存耗尽等问题。
  3. 提高响应速度:预先创建的线程可直接处理任务,无需等待线程初始化。
  4. 统一管理任务:支持任务排队、拒绝策略、监控等功能,便于任务生命周期管控。

二、核心参数(以Java ThreadPoolExecutor为例)

线程池的行为由7个核心参数决定,需根据任务特性(如CPU密集/IO密集)合理配置:

参数

作用描述

corePoolSize

核心线程数:线程池长期保留的线程数量(即使空闲也不销毁,除非设置allowCoreThreadTimeOut)。

maximumPoolSize

最大线程数:线程池允许创建的最大线程数(核心线程+临时线程)。

keepAliveTime

临时线程存活时间:当线程数超过corePoolSize时,多余线程的空闲存活时长。

unit

keepAliveTime的时间单位(如TimeUnit.SECONDS)。

workQueue

任务队列:用于存放未被立即执行的任务(当核心线程都在工作时)。

threadFactory

线程工厂:用于创建线程(可自定义线程名称、优先级等)。

handler

拒绝策略:当任务队列满且线程数达maximumPoolSize时,处理新提交任务的策略。

三、工作流程(任务提交后)

  1. 若当前线程数 < corePoolSize:直接创建核心线程执行任务。
  2. 若当前线程数 ≥ corePoolSize:将任务加入workQueue等待。
  3. workQueue已满,且当前线程数 < maximumPoolSize:创建临时线程执行任务。
  4. workQueue已满,且当前线程数 ≥ maximumPoolSize:触发handler拒绝策略

四、拒绝策略(Java默认4种)

当任务无法被处理时(队列满+线程达上限),需通过拒绝策略处理,避免任务丢失或系统崩溃:

策略类

行为描述

AbortPolicy

抛出RejectedExecutionException(默认策略,中断任务提交)。

CallerRunsPolicy

让提交任务的线程(如main线程)自己执行任务(降低提交速度,缓解压力)。

DiscardPolicy

直接丢弃新任务(无提示,可能丢失任务)。

DiscardOldestPolicy

丢弃任务队列中最旧的任务(队头),再尝试提交新任务。

:可自定义拒绝策略(实现RejectedExecutionHandler接口),如记录日志、持久化任务等。

五、常见线程池类型(Java Executors提供)

Executors封装了几种常用线程池,但不推荐生产环境使用存在资源风险):

线程池类型

核心参数配置

风险点

FixedThreadPool

核心线程数=最大线程数,队列LinkedBlockingQueue(无界)。

队列无界可能导致OOM(任务堆积过多)。

CachedThreadPool

核心线程数=0,最大线程数=Integer.MAX_VALUE,队列SynchronousQueue

最大线程数过大,可能创建大量线程导致OOM。

SingleThreadExecutor

核心线程数=最大线程数=1,队列LinkedBlockingQueue(无界)。

FixedThreadPool,队列无界风险。

ScheduledThreadPool

核心线程数固定,最大线程数=Integer.MAX_VALUE,支持定时/周期性任务。

最大线程数过大,可能创建大量线程导致OOM。

package com.day5;import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;public class Demo06 {public static void main(String[] args) {
//        int i = Runtime.getRuntime().availableProcessors();
//        System.out.println(i);//1.固定大小线程池ExecutorService fixedThreadPool= Executors.newFixedThreadPool(5);//2.单线程线程池ExecutorService singleThreadExecutor = Executors.newSingleThreadExecutor();//3.缓存线程池ExecutorService cachedThreadPool = Executors.newCachedThreadPool();//适合那种大型数量的任务,快速的去创建线程//4.定时任务线程池ScheduledExecutorService scheduledExecutorService = Executors.newScheduledThreadPool(5);//提交任务fixedThreadPool.execute(()-> System.out.println("Task exexcuted"));//关闭线程池fixedThreadPool.shutdown();}
}

六、线程池状态(生命周期)

ThreadPoolExecutor通过状态控制线程池行为,状态流转不可逆:

状态

描述

触发方式

RUNNING

运行中:接受新任务,处理队列任务。

线程池初始化后默认状态。

SHUTDOWN

关闭中:不接受新任务,但处理队列剩余任务。

调用shutdown()触发。

STOP

停止中:不接受新任务,不处理队列任务,中断所有正在执行的任务。

调用shutdownNow()触发。

TIDYING

整理中:所有任务终止,工作线程数=0,准备执行terminated()钩子方法。

SHUTDOWN状态下队列空且线程数=0,或STOP状态下线程数=0时进入。

TERMINATED

终止:terminated()执行完毕。

TIDYING状态结束后进入。

七、使用注意事项

  1. 避免使用Executors工具类:默认线程池的队列或最大线程数可能导致OOM,推荐手动创建ThreadPoolExecutor并指定参数。
  2. 合理配置核心参数
    • CPU密集型任务(如计算):核心线程数 ≈ CPU核心数(减少切换开销)。
    • IO密集型任务(如网络/磁盘操作):核心线程数 ≈ CPU核心数 * 2(利用线程空闲时间)。
  1. 任务队列选择
    • bounded队列(如ArrayBlockingQueue):控制任务堆积上限,避免OOM。
    • 避免无界队列(如LinkedBlockingQueue)除非明确任务量可控。
  1. 优雅关闭线程池:通过shutdown()(平缓关闭)或shutdownNow()(强制关闭),并配合awaitTermination()等待终止。
  2. 监控线程池:通过getActiveCount()(活跃线程数)、getQueue().size()(队列任务数)等方法监控状态,及时调整参数。

http://www.dtcms.com/a/402323.html

相关文章:

  • 深圳市城乡建设局网站南宁专业网站开发
  • 利用代码如何做网站wordpress采集英文
  • 建设网站的企业网站cms管理后台电话号码
  • 广州网站优化方式wordpress 柚子皮5.7
  • 高唐建筑公司网站网站开发的工资是多少
  • 杭州企业自助建站山东省建设厅网站地址
  • 常州网站建设效果杭州亚运会网页设计作业
  • linx服务器怎么做网站企业网站 响应式 案例
  • 化工行业网站设计百度网站关键字
  • 小语种网站建设及推广私域电商软件有哪些
  • 网站现在如何做推广网站建设的方法有哪些方面
  • 家居商城网站模板平台搭建教程
  • 网站自动发送邮件华为仓颉编程语言
  • 制作荧光字网站云浮北京网站建设
  • 免费网站的资源可以发公众号吗首页关键词是不是一个网站的核心关键词所在
  • 视频推广网站wordpress创意点赞
  • 青岛新网站设计公司国外室内设计网站推荐
  • 乐山 网站建设浙江中钦建设有限公司网站
  • 制作公司网站设计手绘新万网
  • 品牌推广是什么刷排名seo
  • 注册网站借钱平台犯不犯法网站如何做关键词优化
  • 常州网站建设流程2022最近热点事件及评述
  • 北京建站管理系统开发网站推广 教程
  • 桂林骏程网站建设美食类网站模板
  • 合肥市建设工程劳务分包合同备案表在哪个网站下载响应式学校网站模板
  • 网站开发项目章程示例英雄联盟做的广告视频网站
  • 企业网站建设存在的典型问题有哪些?宣讲家网站做四讲四有模范
  • 网站开发西安中软夏邑网站建设
  • 冠县建设局网站昌江区网站建设
  • asp php jsp网站开发百瑞网站建设