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

二手车网站系统网站开发合同范本大全

二手车网站系统,网站开发合同范本大全,兴义做网站的公司,企业文化视频制作目录 前言 线程池的原理 核心线程数为0的情况 示例代码 示例解释 运行示例 示例运行分析 总结 前言 在Spring#xff08;以及底层的Java Executor 框架#xff09;中#xff0c;如果线程池的核心线程数设置为0#xff0c;线程池的行为将受到影响。了解这种情况下线程…目录 前言 线程池的原理 核心线程数为0的情况 示例代码 示例解释 运行示例 示例运行分析 总结 前言 在Spring以及底层的Java Executor 框架中如果线程池的核心线程数设置为0线程池的行为将受到影响。了解这种情况下线程池的行为可以帮助你合理配置线程池以满足应用程序的需求。 线程池的原理 线程池是用于管理和复用线程的工具以避免线程的频繁创建和销毁带来的开销。Java中的 ThreadPoolExecutor 是线程池的核心实现它通过以下几个参数来控制线程池的行为 corePoolSize核心线程数即线程池中始终保持存活的线程数量。maximumPoolSize最大线程数即线程池中允许的最大线程数量。keepAliveTime非核心线程的存活时间当空闲时间超过这个时间时非核心线程会被终止。workQueue任务队列用于存储等待执行的任务。 核心线程数为0的情况 当核心线程数设置为0时线程池在没有任务执行时将不会保留任何线程。这种配置对线程池的行为有以下影响 任务提交时创建线程当有新任务提交到线程池时如果没有可用线程线程池会创建新线程来处理任务直到达到 maximumPoolSize。任务完成后销毁线程线程在完成任务后会进入空闲状态并在超过 keepAliveTime 后被终止。因此线程池在没有任务时将不会有任何线程存活。依赖任务队列如果任务队列已满且当前线程数已达到 maximumPoolSize新任务将被拒绝通常通过抛出 RejectedExecutionException。 示例代码 以下是一个Spring配置示例演示了核心线程数为0的线程池配置及其行为 import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;import java.util.concurrent.Executor;Configuration public class ThreadPoolConfig {Beanpublic Executor taskExecutor() {ThreadPoolTaskExecutor executor new ThreadPoolTaskExecutor();executor.setCorePoolSize(0); // 核心线程数为0executor.setMaxPoolSize(5); // 最大线程数executor.setQueueCapacity(10); // 任务队列容量executor.setKeepAliveSeconds(60); // 非核心线程的存活时间executor.setThreadNamePrefix(MyExecutor-);executor.initialize();return executor;} }示例解释 核心线程数为0executor.setCorePoolSize(0); 设置核心线程数为0意味着线程池在没有任务时不会保留任何线程。最大线程数executor.setMaxPoolSize(5); 设置最大线程数为5线程池最多可以同时执行5个任务。任务队列容量executor.setQueueCapacity(10); 设置任务队列容量为10队列用于存储等待执行的任务。非核心线程的存活时间executor.setKeepAliveSeconds(60); 设置非核心线程的存活时间为60秒超过这个时间的空闲线程将被终止。线程名称前缀executor.setThreadNamePrefix(MyExecutor-); 设置线程名称的前缀方便调试和日志记录。 运行示例 下面是一个简单的示例展示了如何提交任务到上述配置的线程池中 import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service;import javax.annotation.PostConstruct;Service public class TaskService {Autowiredprivate Executor taskExecutor;PostConstructpublic void submitTasks() {for (int i 0; i 15; i) {int taskId i;taskExecutor.execute(() - performTask(taskId));}}Asyncpublic void performTask(int taskId) {System.out.println(Thread.currentThread().getName() is executing task taskId);try {Thread.sleep(2000); // 模拟任务执行} catch (InterruptedException e) {Thread.currentThread().interrupt();}} }示例运行分析 提交任务在 TaskService 中通过 taskExecutor.execute() 提交了15个任务。线程创建由于核心线程数为0线程池会为每个新任务创建新线程直到达到最大线程数5。任务执行前5个任务会立即执行其余任务会被放入任务队列中等待执行。线程销毁任务完成后线程将进入空闲状态并在空闲超过60秒后被终止。 总结 当线程池的核心线程数设置为0时线程池在没有任务时不会保留任何线程只有在有新任务提交时才会创建线程。这种配置可以节省资源但需要合理设置任务队列容量和最大线程数以避免任务被拒绝或线程频繁创建和销毁带来的性能开销。
http://www.zqtcl.cn/news/587131/

相关文章:

  • 网络违法犯罪举报网站哪里有制作网站服务
  • 临沂怎么做网站网站 单页
  • 科技信息网站系统建设方案建筑设计专业世界大学排名
  • 做网站运营的简历小型视频网站建设
  • 福建省亿力电力建设有限公司网站网页设计html代码大全动物
  • 如何建网站赚取佣金企业网站的在线推广方法有
  • 嵌入式转行到网站开发免费秒玩小游戏
  • 采购网站排名不需要证件做网站
  • wordpress添加用户登录东莞网络公司seo优化
  • 哪些企业网站使用水墨风格设计免费
  • 河北邯郸做网站的公司哪家好云南建站公司
  • 网站开发如何给用户发邮件wordpress中文插件下载
  • 专业外贸网站建设公司排名网站错误列表
  • 魔站建站系统哪家好扬州网站开发公司电话
  • 合伙做网站网络公司网站建设首页
  • 网站建设项目经理深圳在线官网
  • 网站开发技术及应用wordpress自定义类型使用模板
  • 网站颜色 字体代销网站源码
  • 做二手车有哪些网站有哪些手续翠竹林wordpress主题
  • 商城网站开发报价单献县做网站价格
  • 做网站和推广需要多少钱诚信企业查询系统
  • c 2015 做网站网站设计技术有哪些?
  • 安丘网站开发主播网站建立
  • 档案网站的建设wordpress英文主题 汉化
  • 网站建设礼品南充网站建设工作室
  • 电子商务网站建设概念wordpress 扫码支付宝
  • 上海做网站谁好营销型网站框架图
  • 太仓企业网站建设价格wordpress自动同步插件
  • 微信网站是什么淄博周村网站建设哪家好
  • 廊坊网站建设价格网站建设维护的方案