news 2026/7/19 15:07:47

有关线程池知识

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
有关线程池知识

一、线程池用了哪些设计模式

  • 工厂模式:Java中Executors类提供的newFixedThreadPool、newCachedThreadPool等静态方法,本质上是工厂方法,它们封装了TreabPoolExecutor复杂的参数配置,根据不同场景返回预配置的线程池实例,简化了用户创建线程池的操作。
  • 享元模式:线程池通过复用已创建的线程来执行多个任务,避免了频繁创建和销毁线程带来的资源消耗。线程作为“共享资源”,在完成一个任务后不会被销毁,而是回到线程池等待新的任务,这对线程资源的共享复用,正是享元模式的典型应用,有效提高了系统的资源利用率。
  • 生产者--消费者模式:用户通过execute或submit方法提交任务,任务被放入阻塞队列中。线程池中的工作线程不断从队列中取出任务并执行。
  • 模板方法模式:ThreadPoolExecutor的execute方法定义了任务执行的整体流程框架:先尝试添加任务到核心线程,失败则加入队列,再失败则创建非核心线程,最后执行拒绝策略。

二、线程池中shutdown(),shutdownNow()这两个方法有什么作用?

  • shutdown调用后状态置为SHUTDOWN,已提交但未开始执行的队列任务仍会按顺序继续执行直到全部完成;只对处于空闲等待状态的worker线程调用interrupt()
  • shutdownNow为STOP,并试图停止使用正在执行的线程,不再处理还在池队中等待的任务,当然,它会返回那些执行的任务。

三、提交给线程池中的任务可以被撤回吗?

可以撤回,当向线程池提交任务时,会得到一个Future对象。这个Future对象提供了几种方法来管理任务的执行,包括取消任务。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/19 15:05:14

多维聚合实战:从GROUP BY到空间导航的数据分析跃迁

1. 项目概述:当数据聚合从“加总”升级为“空间导航”你有没有遇到过这样的场景:销售报表里只显示“华东区Q3总销售额1280万元”,但当你点开下钻,发现上海贡献了920万,江苏却只有180万,浙江反而拖了后腿——…

作者头像 李华
网站建设 2026/7/19 15:04:46

90%开发者踩坑:MCP Resource注册≠模型能读取资源

文章目录 前言一、先分清两个容易搞混的东西:Tool 和 Resource1.1 两者底层逻辑完全反过来 二、只注册Resource,模型绝对看不见的根本原因2.1 registerResource只是“贴告示”,不是“送货上门”2.2 为什么设计成不自动全量灌入?四…

作者头像 李华
网站建设 2026/7/19 15:03:54

GimpPs终极指南:如何3步将GIMP界面秒变Photoshop专业风格

GimpPs终极指南:如何3步将GIMP界面秒变Photoshop专业风格 【免费下载链接】GimpPs Gimp Theme to be more photoshop like 项目地址: https://gitcode.com/gh_mirrors/gi/GimpPs 如果你是一名Photoshop用户想要转向免费开源的GIMP,或者你已经被GI…

作者头像 李华
网站建设 2026/7/19 15:03:50

Windows Defender Remover终极指南:如何彻底移除系统自带杀毒软件

Windows Defender Remover终极指南:如何彻底移除系统自带杀毒软件 【免费下载链接】windows-defender-remover A tool which is uses to remove Windows Defender in Windows 8.x, Windows 10 (every version) and Windows 11. 项目地址: https://gitcode.com/gh_…

作者头像 李华