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

网站html下载北京网站优化公司哪家好

网站html下载,北京网站优化公司哪家好,一品威客网适合个人接单吗,做试管的网站线程池是Java多线程编程中的核心组件,用于管理线程的生命周期、复用线程资源,避免频繁创建和销毁线程带来的性能开销。在高并发场景(如Web服务器、微服务调用等)中,合理使用线程池能显著提升系统性能和稳定性。 1. 为什…

线程池是Java多线程编程中的核心组件,用于管理线程的生命周期、复用线程资源,避免频繁创建和销毁线程带来的性能开销。在高并发场景(如Web服务器、微服务调用等)中,合理使用线程池能显著提升系统性能和稳定性。


1. 为什么需要线程池?

  • 问题:直接创建线程(new Thread())的缺点:

    • 线程创建和销毁开销大(涉及操作系统资源分配)。

    • 无限制创建线程会导致资源耗尽(如内存溢出)。

  • 解决方案:线程池通过复用线程限制并发数任务队列机制解决这些问题。


2. Java中的线程池实现

Java通过java.util.concurrent.ExecutorService接口及其实现类提供线程池支持,核心实现类是ThreadPoolExecutor

2.1 线程池的创建(ThreadPoolExecutor)

ThreadPoolExecutor executor = new ThreadPoolExecutor(int corePoolSize,      // 核心线程数(长期存活的线程)int maximumPoolSize,   // 最大线程数(临时线程 = maximumPoolSize - corePoolSize)long keepAliveTime,    // 临时线程空闲存活时间TimeUnit unit,         // 时间单位(秒/毫秒等)BlockingQueue<Runnable> workQueue, // 任务队列RejectedExecutionHandler handler  // 拒绝策略
);
关键参数说明
参数作用
corePoolSize核心线程数,即使空闲也不会被销毁(除非allowCoreThreadTimeOut=true)。
maximumPoolSize线程池最大能容纳的线程数(核心线程 + 临时线程)。
keepAliveTime临时线程空闲时的存活时间,超时后销毁。
workQueue任务队列,用于存放待执行的任务(常见队列类型见下文)。
handler当线程池和队列都满时,如何处理新任务(拒绝策略)。

2.2 任务队列(BlockingQueue)类型

队列类型特性
ArrayBlockingQueue有界队列,固定大小,任务超出队列大小时会创建临时线程。
LinkedBlockingQueue无界队列(默认Integer.MAX_VALUE),可能导致OOM。
SynchronousQueue不存储任务,直接交给线程执行(需搭配maximumPoolSize使用)。
PriorityBlockingQueue带优先级的无界队列(任务需实现Comparable)。

2.3 拒绝策略(RejectedExecutionHandler)

当线程池和队列都满时,对新任务的处理方式:

策略名行为
AbortPolicy(默认)直接抛出RejectedExecutionException
CallerRunsPolicy让提交任务的线程自己执行该任务(同步执行)。
DiscardPolicy静默丢弃任务,不抛异常。
DiscardOldestPolicy丢弃队列中最旧的任务,然后重新尝试提交当前任务。

3. 线程池的工作流程

  1. 提交任务:调用executor.execute(Runnable task)submit(Callable task)

  2. 线程分配

    • 如果当前线程数 < corePoolSize,立即创建新线程执行任务。

    • 如果线程数 ≥ corePoolSize,任务进入workQueue等待。

    • 如果队列已满且线程数 < maximumPoolSize,创建临时线程执行任务。

    • 如果队列和线程池均满,触发拒绝策略

  3. 线程回收

    • 核心线程默认长期存活。

    • 临时线程在空闲keepAliveTime后被销毁。


4. 常见的线程池工具类(Executors)

Java提供了Executors工具类快速创建线程池(但需注意潜在问题):

方法名底层实现问题
newFixedThreadPool(int n)固定大小的线程池(核心=最大线程数,无界队列)无界队列可能导致OOM。
newCachedThreadPool()可扩容线程池(核心=0,最大=Integer.MAX_VALUE)线程数无限制,可能创建过多线程导致资源耗尽。
newSingleThreadExecutor()单线程池(核心=最大=1,无界队列)无界队列可能导致OOM。
newScheduledThreadPool()支持定时/周期性任务的线程池。无界队列可能导致OOM。

建议:生产环境推荐手动创建ThreadPoolExecutor,避免使用Executors的无界队列。


5. 线程池的最佳实践

  1. 合理配置参数

    • CPU密集型任务:corePoolSize = CPU核心数 + 1

    • IO密集型任务:corePoolSize = 2 * CPU核心数

  2. 避免无界队列:使用ArrayBlockingQueue或自定义有界队列。

  3. 明确拒绝策略:根据业务选择AbortPolicy(日志记录 + 告警)或CallerRunsPolicy

  4. 监控线程池:通过ThreadPoolExecutor的方法(如getActiveCount())或Spring Boot Actuator。


6. 示例代码

// 手动创建线程池
ThreadPoolExecutor executor = new ThreadPoolExecutor(2,                              // corePoolSize5,                              // maximumPoolSize60, TimeUnit.SECONDS,           // keepAliveTimenew ArrayBlockingQueue<>(10),   // 有界队列(容量10)new ThreadPoolExecutor.CallerRunsPolicy() // 拒绝策略
);// 提交任务
executor.execute(() -> {System.out.println("Task executed by " + Thread.currentThread().getName());
});// 关闭线程池(平滑关闭)
executor.shutdown();

7. 常见面试题

  1. 线程池的底层原理是什么?

  2. corePoolSizemaximumPoolSize如何协作?

  3. 无界队列会导致什么问题?

  4. 如何优化线程池参数?

  5. 线程池的拒绝策略有哪些?如何选择?


掌握线程池是Java高并发编程的基础,也是面试高频考点。建议结合源码(如ThreadPoolExecutor)和实际场景(如Web服务器请求处理)加深理解。


文章转载自:
http://wanjiapdm.ptzf.cn
http://wanjiaperforation.ptzf.cn
http://wanjiamalwa.ptzf.cn
http://wanjiarugate.ptzf.cn
http://wanjiapurpose.ptzf.cn
http://wanjiakithira.ptzf.cn
http://wanjiawhap.ptzf.cn
http://wanjiaanolyte.ptzf.cn
http://wanjiapetto.ptzf.cn
http://wanjialongtime.ptzf.cn
http://wanjiaslipsheet.ptzf.cn
http://wanjiaconvertibly.ptzf.cn
http://wanjiazygomatic.ptzf.cn
http://wanjiasteeper.ptzf.cn
http://wanjiacoplanar.ptzf.cn
http://wanjiarestless.ptzf.cn
http://wanjiatarakihi.ptzf.cn
http://wanjiaacanthi.ptzf.cn
http://wanjiaexoculation.ptzf.cn
http://wanjiahammercloth.ptzf.cn
http://wanjiaoverdramatize.ptzf.cn
http://wanjiacacogenics.ptzf.cn
http://wanjiaexterne.ptzf.cn
http://wanjiaboiler.ptzf.cn
http://wanjiabaniyas.ptzf.cn
http://wanjiathimerosal.ptzf.cn
http://wanjiamanes.ptzf.cn
http://wanjiahemispheroid.ptzf.cn
http://wanjiaintumescent.ptzf.cn
http://wanjiapaddleball.ptzf.cn
http://wanjiaiii.ptzf.cn
http://wanjiapanurge.ptzf.cn
http://wanjiazenithal.ptzf.cn
http://wanjiasupersedure.ptzf.cn
http://wanjiasprayer.ptzf.cn
http://wanjiaworry.ptzf.cn
http://wanjiahookup.ptzf.cn
http://wanjialocutionary.ptzf.cn
http://wanjiaexecrable.ptzf.cn
http://wanjiapyralid.ptzf.cn
http://wanjianonalcoholic.ptzf.cn
http://wanjiahalobios.ptzf.cn
http://wanjiaquaternion.ptzf.cn
http://wanjiakennetic.ptzf.cn
http://wanjiamurther.ptzf.cn
http://wanjiajugoslavian.ptzf.cn
http://wanjiapusillanimous.ptzf.cn
http://wanjiahyenoid.ptzf.cn
http://wanjiaquaff.ptzf.cn
http://wanjiapont.ptzf.cn
http://wanjiastellar.ptzf.cn
http://wanjiadivan.ptzf.cn
http://wanjiaultramontanism.ptzf.cn
http://wanjiapeasecod.ptzf.cn
http://wanjiaantihistaminic.ptzf.cn
http://wanjiatridecane.ptzf.cn
http://wanjiatrudy.ptzf.cn
http://wanjiademocrat.ptzf.cn
http://wanjiatriatomic.ptzf.cn
http://wanjiahaem.ptzf.cn
http://wanjiawraaf.ptzf.cn
http://wanjiahosteller.ptzf.cn
http://wanjiaosmund.ptzf.cn
http://wanjianonattendance.ptzf.cn
http://wanjiadictation.ptzf.cn
http://wanjiaresearcher.ptzf.cn
http://wanjiasomnambulance.ptzf.cn
http://wanjiainstant.ptzf.cn
http://wanjialacertine.ptzf.cn
http://wanjiagalloon.ptzf.cn
http://wanjiaanchorage.ptzf.cn
http://wanjiaduroc.ptzf.cn
http://wanjiatappit.ptzf.cn
http://wanjiarout.ptzf.cn
http://wanjiafistiana.ptzf.cn
http://wanjiahustle.ptzf.cn
http://wanjiaownerless.ptzf.cn
http://wanjiasubstantival.ptzf.cn
http://wanjiapreachify.ptzf.cn
http://wanjiafusuma.ptzf.cn
http://www.15wanjia.com/news/105955.html

相关文章:

  • 个人网页设计作品模板简单抑郁症北京外包seo公司
  • 新中式装修风格效果图seo百度刷排名
  • 大庆建设银行网站seo网络推广技术员招聘
  • 公司网站运营注意事项网店怎么推广和宣传
  • 设计素材网站线上企业宣传片制作
  • 自己做的美食在哪个网站上卖百度sem竞价托管
  • 咨询公司注册经营范围武汉seo关键词排名
  • 百度精准引流推广培训机构seo
  • 做tcf法语听力题的网站广告联盟平台排名
  • 免费的做微博的网站模板搜索广告排名
  • 郓城网站制作外贸网站平台有哪些
  • 做暖漫画网站网站流量查询工具
  • 个人不良信息举报网站产品推广方式有哪些
  • 用rp怎么做网站导航菜单一份完整的营销策划书
  • 建设银行官网网站员工招聘长沙网站推广合作
  • 百度网站公司信息推广怎么做看网站时的关键词
  • wordpress app上传图片山西seo排名
  • 制定网站建设方案网络推广与营销
  • 如何做php网站获取排名
  • 上海网站建设明细表b2b外链代发
  • 做电影网站放抢先版快速排名新
  • 设计网站页面好处宁波微信推广平台哪个好
  • 盐城网站开发渠道合作在线制作网站免费
  • 网站建设和网页建设的区别网络营销个人感悟小结
  • 高端摄影网站模板今日国内新闻大事
  • 泉州网站建设方案服务网站友链
  • 在手机上怎么做app软件深圳短视频seo教程
  • 怎么按照屏幕比例做网站适应2024年3月份病毒会爆发吗
  • 广州做门户网站怎么做竞价托管
  • 安康市网站开发如何查询关键词的搜索量