怎么样让网站网址有图标权威网站

张小明 2025/12/28 7:41:04
怎么样让网站网址有图标,权威网站,湖北专业网站建设检修,免费软件库文章目录Java Executors框架#xff1a;面试必看的核心知识点 ?一、Executors框架的前世今生1.1、Executors框架的作用1.2、Executors框架的核心类二、ThreadPoolExecutor的核心参数2.1、核心参数介绍2.2、核心参数的配置示例三、Executors框架的常用方法3.1、固定大小的线程…文章目录Java Executors框架面试必看的核心知识点 ?一、Executors框架的前世今生1.1、Executors框架的作用1.2、Executors框架的核心类二、ThreadPoolExecutor的核心参数2.1、核心参数介绍2.2、核心参数的配置示例三、Executors框架的常用方法3.1、固定大小的线程池FixedThreadPool3.2、单线程的线程池SingleThreadExecutor3.3、可扩展的线程池CachedThreadPool3.4、定时任务线程池ScheduledThreadPool四、线程池的生命周期4.1、线程池状态4.2、关闭线程池的方法4.3、线程池的优雅关闭五、线程池的性能调优5.1、核心线程数和最大线程数的选择5.2、队列容量的配置5.3、线程存活时间的设置六、常见问题与解决方案6.1、任务被拒绝的问题6.2、内存泄漏问题七、总结以上是对 Executors 框架的全面解析。如果你还有其他问题或需要进一步了解某个部分请随时提问 领取 | 1000 套高质量面试题大合集无套路闫工带你飞一把Java Executors框架面试必看的核心知识点 ?大家好欢迎来到闫工的技术博客今天我们要聊一个Java面试中绝对绕不开的话题——Executors框架。作为一个长期战斗在一线的“码农”我深知线程池的重要性。尤其是在高并发、高性能的场景下合理使用线程池不仅能提升系统性能还能避免一些常见的陷阱。那么什么是 Executors 框架它有哪些核心知识点面试中又该如何应对呢让我们一起深入探讨。一、Executors框架的前世今生在Java的世界里线程池是一个非常重要的概念。它允许我们复用线程减少线程创建和销毁的开销从而提升系统的性能。而 Executors 框架正是 Java 提供的一个用于管理和执行任务的高级 API。1.1、Executors框架的作用简单来说Executors框架的作用就是简化线程池的创建和管理。它提供了一系列工厂方法让我们可以轻松地创建不同类型的线程池比如固定大小的线程池、单线程池等而不需要手动实现复杂的逻辑。1.2、Executors框架的核心类在 Executors 框架中有几个核心类是我们必须了解的ExecutorService这是一个接口它定义了执行任务的方法。ThreadPoolExecutor这是最常用的线程池实现类提供了丰富的配置选项。ScheduledThreadPoolExecutor支持定时任务和周期性任务的线程池。这些类之间的关系如下图所示classDiagram class ExecutorService { void submit(Runnable) Future? submit(Callable) void shutdown() ListRunnable shutdownNow() } class ThreadPoolExecutor (ExecutorService) { int corePoolSize int maximumPoolSize long keepAliveTime // 其他属性和方法 } class ScheduledThreadPoolExecutor (ThreadPoolExecutor) { ScheduledFuture? schedule(Callable, long, TimeUnit) ScheduledFuture? scheduleAtFixedRate(Runnable, long, long, TimeUnit) // 其他定时任务相关的方法 }通过这些类我们可以灵活地配置和管理线程池。二、ThreadPoolExecutor的核心参数ThreadPoolExecutor 是 Executors 框架中最重要的一部分。它允许我们配置一个自定义的线程池满足不同的业务需求。那么ThreadPoolExecutor 的核心参数有哪些呢2.1、核心参数介绍在创建 ThreadPoolExecutor 实例时我们需要提供以下参数publicThreadPoolExecutor(intcorePoolSize,intmaximumPoolSize,longkeepAliveTime,TimeUnitunit,BlockingQueueRunnableworkQueue,ThreadFactorythreadFactory){// 初始化逻辑}corePoolSize核心线程数。即使没有任务执行线程池中也会保持 corePoolSize 个线程。maximumPoolSize最大线程数。当队列满时线程池允许的最大线程数。keepAliveTime线程空闲时间。当线程数超过 corePoolSize 时多余的空闲线程会在 keepAliveTime 时间后被回收。unitkeepAliveTime 的时间单位。workQueue任务队列。用于存储等待执行的任务。threadFactory线程工厂。用于创建新的线程。2.2、核心参数的配置示例下面是一个典型的 ThreadPoolExecutor 配置示例importjava.util.concurrent.*;publicclassMyThreadPool{publicstaticvoidmain(String[]args){// 创建一个 ThreadPoolExecutor 实例ExecutorServiceexecutornewThreadPoolExecutor(5,// 核心线程数保持5个线程10,// 最大线程数最多允许10个线程30L,// 空闲时间30秒TimeUnit.SECONDS,newArrayBlockingQueue(10),// 任务队列容量为10的队列Executors.defaultThreadFactory()// 线程工厂默认实现);// 提交一些任务for(inti0;i20;i){executor.submit(()-{System.out.println(Task executed by Thread.currentThread().getName());});}// 关闭线程池executor.shutdown();}}在上面的例子中我们创建了一个核心线程数为5、最大线程数为10的线程池。当提交的任务数量超过队列容量时多余的线程会增加到 maximumPoolSize 个。三、Executors框架的常用方法Executors 框架提供了一些工厂方法可以快速创建不同类型的线程池。这些方法简化了我们的开发工作。3.1、固定大小的线程池FixedThreadPoolExecutorServiceexecutorExecutors.newFixedThreadPool(5);特点核心线程数和最大线程数相同队列是无界的。适用场景适用于任务数量稳定的场景。3.2、单线程的线程池SingleThreadExecutorExecutorServiceexecutorExecutors.newSingleThreadExecutor();特点只有一个核心线程任务按顺序执行。适用场景适用于串行任务或需要保持任务顺序的场景。3.3、可扩展的线程池CachedThreadPoolExecutorServiceexecutorExecutors.newCachedThreadPool();特点核心线程数为0最大线程数无界。当队列满时会创建新的线程。适用场景适用于任务数量不确定且需要快速响应的场景。3.4、定时任务线程池ScheduledThreadPoolScheduledExecutorServiceexecutorExecutors.newScheduledThreadPool(5);特点支持定时任务和周期性任务的执行。适用场景适用于需要延迟或定期执行的任务比如定时清理缓存。四、线程池的生命周期线程池有一个明确的生命周期从创建到销毁。了解线hread池的状态变化对于正确使用它非常重要。4.1、线程池状态ThreadPoolExecutor 使用三个状态来描述它的生命周期RUNNING正常运行状态可以接受新任务。SHUTDOWN关闭状态不再接受新任务但会继续完成已提交的任务。STOP强制关闭状态停止所有正在执行的任务并拒绝所有未处理的任务。4.2、关闭线程池的方法在线程池使用完毕后我们需要显式地关闭它。常用的关闭方法有// 平稳关闭等待所有任务完成后再关闭executor.shutdown();// 强制关闭立即停止所有任务并返回未执行的任务列表ListRunnableunexecutedTasksexecutor.shutdownNow();4.3、线程池的优雅关闭在线程池关闭时如果不正确地处理可能会导致资源泄漏或任务丢失。因此在实际开发中我们需要注意以下几点在 shutdown() 或 shutdownNow() 后检查线程池是否已经关闭。使用 awaitTermination() 方法等待所有任务完成。示例代码executor.shutdown();try{if(!executor.awaitTermination(5,TimeUnit.SECONDS)){// 超时未关闭则强制关闭executor.shutdownNow();if(!executor.awaitTermination(5,TimeUnit.SECONDS)){System.err.println(Pool did not terminate);}}}catch(InterruptedExceptione){executor.shutdownNow();}五、线程池的性能调优合理配置线程池参数是提高系统性能的关键。以下是一些调优建议5.1、核心线程数和最大线程数的选择核心线程数根据 CPU 核心数或任务类型选择。对于计算密集型任务通常设置为 CPU 核心数对于 IO 密集型任务可以适当增加。最大线程数不要无限制地设置否则可能会导致资源耗尽。5.2、队列容量的配置队列容量应根据任务到达速率和处理速率来配置。如果队列过小会导致频繁创建新线程如果队列过大可能会延迟拒绝策略的触发。5.3、线程存活时间的设置空闲线程的存活时间应根据业务需求和资源限制来调整。太短会增加线程创建销毁的开销太长则可能导致资源浪费。六、常见问题与解决方案6.1、任务被拒绝的问题当线程池处于关闭状态或队列已满时新的任务会被拒绝。为了处理这种情况可以自定义拒绝策略ThreadPoolExecutorexecutornewThreadPoolExecutor(5,10,30L,TimeUnit.SECONDS,newArrayBlockingQueue(10),Executors.defaultThreadFactory(),newThreadPoolExecutor.AbortPolicy()// 默认的拒绝策略抛出异常);可以替换为其他策略CallerRunsPolicy由提交任务的线程执行。DiscardPolicy直接丢弃任务。DiscardOldestPolicy丢弃队列中最旧的任务。6.2、内存泄漏问题在线程池中如果某些线程持有外部资源如数据库连接可能会导致内存泄漏。为了避免这种情况在线程池关闭时确保所有资源都被正确释放。使用 finally 块来保证资源的释放。七、总结Executors 框架提供了丰富的功能和灵活的配置选项。通过合理选择参数和策略可以显著提高系统的性能和稳定性。在实际开发中我们需要根据业务需求和系统特点进行线程池的调优和优化以达到最佳效果。以上是对 Executors 框架的全面解析。如果你还有其他问题或需要进一步了解某个部分请随时提问 领取 | 1000 套高质量面试题大合集无套路闫工带你飞一把成体系的面试题无论你是大佬还是小白都需要一套JAVA体系的面试题我已经上岸了你也想上岸吗闫工精心准备了程序准备面试想系统提升技术实力闫工精心整理了1000 套涵盖前端、后端、算法、数据库、操作系统、网络、设计模式等方向的面试真题 详细解析并附赠高频考点总结、简历模板、面经合集等实用资料✅ 覆盖大厂高频题型✅ 按知识点分类查漏补缺超方便✅ 持续更新助你拿下心仪 Offer免费领取 点击这里获取资料已帮助数千位开发者成功上岸下一个就是你✨
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

网站相应速度互联网应用开发与设计

文章目录系统截图项目简介大数据系统开发流程主要运用技术介绍爬虫核心代码展示结论源码文档获取定制开发/同行可拿货,招校园代理 :文章底部获取博主联系方式!系统截图 pythondjango基于协同过滤算法的小说推荐系统可视化大屏vue爬虫 项目简介 本…

张小明 2025/12/27 17:00:06 网站建设

上海培训网站建设wordpress好不好用

FaceFusion镜像资源配额管理技术深度解析在AI生成内容(AIGC)应用快速落地的今天,人脸替换这类高算力需求的服务正从实验项目走向生产环境。FaceFusion作为开源社区中广受认可的人脸融合工具,其本地运行效果出色,但一旦…

张小明 2025/12/27 17:42:20 网站建设

站群服务器现在是用什么软件做网站

XXPermissions深度解析:Android权限框架的架构揭秘与实践指南 【免费下载链接】XXPermissions Android 权限请求框架,已适配 Android 14 项目地址: https://gitcode.com/GitHub_Trending/xx/XXPermissions 在Android开发领域,权限管理…

张小明 2025/12/26 14:25:01 网站建设

为什么最近好多网站维护询盘网站

LangFlow社区大使计划实施细则 在大语言模型(LLM)技术飞速演进的今天,越来越多的企业和开发者开始探索如何将AI能力快速集成到实际业务中。然而,一个现实难题摆在面前:LangChain这类强大框架虽然功能完备,但…

张小明 2025/12/27 14:28:15 网站建设

电子商城网站开发文档哈尔滨云建站模板

每年的这个时候,总能看到许多为毕业设计而发愁的同学。大家手里握着熟悉的STM32,知道它性能强大、控制精准,是完成毕设的可靠伙伴,但恰恰因为这份“可靠”,反而让选题变得困难——能做的东西似乎都被人做过了&#xff…

张小明 2025/12/27 23:04:48 网站建设

html5 ASP 演示网站公众号文章怎么导入到wordpress

学术文档格式转换终极指南:3步实现永久保存 【免费下载链接】ScienceDecrypting 项目地址: https://gitcode.com/gh_mirrors/sc/ScienceDecrypting 现实困境:被格式束缚的研究资料 深夜赶论文时,突然发现下载的文献无法打开&#xf…

张小明 2025/12/27 16:52:40 网站建设