Spring线程池( ThreadPoolTaskExecutor )有几个核心参数: 1.  corePoolSize  - 含义:线程池的核心线程数。核心线程在创建后会一直存活,即使它们处于空闲状态。这些线程会等待任务到来并执行任务,它们是线程池基本的执行力量。 - 示例:如果 corePoolSize 设置为5,那么线程池在初始化后会创建5个核心线程,随时准备执行任务。 2.  maxPoolSize  - 含义:线程池允许的最大线程数。当任务数量超过核心线程数,并且工作队列已满时,线程池会创建新的线程来处理任务,直到线程数量达到最大线程数。 - 示例: maxPoolSize 设置为10,当有大量任务到来,核心的5个线程处理不过来,任务队列也满了,就会继续创建新线程,最多创建到10个。 3.  queueCapacity  - 含义:工作队列的容量。当提交的任务数超过核心线程数时,这些任务会被放入工作队列中等待执行。工作队列用于缓冲任务,让线程可以从队列中获取任务并执行。 - 示例: queueCapacity 设为100,当有超过核心线程数的任务提交时,最多可有100个任务在队列中等待,而不是立即创建新线程。 4.  keepAliveSeconds  - 含义:当线程数大于核心线程数时,多余线程的空闲存活时间。即当线程池中的线程数量超过核心线程数,并且有线程处于空闲状态的时间超过这个设定值时,这些多余的空闲线程会被销毁。 - 示例: keepAliveSeconds 设为60,表示多余线程空闲60秒后就会被销毁。 5.  threadNamePrefix  - 含义:线程名称的前缀。用于在日志记录、调试等场景中方便地识别线程所属的线程池。 - 示例:设置 threadNamePrefix 为 "my-pool-" ,那么线程池创建的线程名称可能是 my - pool - 1 、 my - pool - 2 等,方便区分不同线程池的线程。
点赞 评论

相关推荐

09-11 16:35
已编辑
东莞理工学院 Java
📍面试公司:袋鼠云🕐面试时间:9月7号💻面试岗位:云原生开发❓面试问题:1.使用过哪些大数据的技术,你描述一下2.spark的Shuffle你了解有哪些3.spark作业流程优化是怎么优化的4.有做过spark参数调优吗5.你禁用了分片广播后性能不是会更差吗,为什么要禁用6.你后续做完了后认为还有没有什么优化空间呢7.单点登入是怎么实现的,为什么要用策略模式和工厂模式,对应的逻辑是怎么样的8.我看你用正则表达和多层map嵌套去优化数据存储,这一块是怎么做的9.这个地方内存会爆吗,怎么做的10.看你项目中使用了联合索引,这一块是怎么设计的11.索引的命中你有了解过底层吗12.索引的原理13.为什么选择使用b+树14.我看你这引入了redis,你是如何保证缓存一致性的15.这么大的数据丢到redis中会有什么问题呢,怎么解决的16.es的底层原理了解过吗,它的数据结构是怎么样的17.es的join性能你觉得怎样,为什么呢18.我看你数据双向交互有一些技术选型的迭代,websocket和grpc哪个性能更好,它们性能的差异在哪里,最后为什么要使用grpc19.有没有考虑使用sse呢20.有没有考虑过使用mcp呢21.有没有了解过其它的rpc框架,grpc有什么缺点呢22.有没有考虑过引入一些服务治理的组件呢23.我看你引入了RabbitMQ去做任务的解耦,说说为什么使用RabbitMQ,使用过程中有什么问题呢24.为什么不使用kafka25.kafka和RabbitMQ的区别26.为什么kafka性能比RabbitMQ好27.为什么kafka使用sendflie做零拷贝,而RabbitMQ使用mmap+write呢,RabbitMQ也使用sendflie做零拷贝不好吗28.用户态和内核态切换的场景和原理29.你认为平时在开发中先写好接口再去写对应的实现有什么好处30.spi了解过吗,可以从这方面去考虑31.动态规划和递归你了解过吗,一般那个性能会更好,为什么32.你认为刷算法对你平常开发有什么好处🙌面试感想:怎么问这么多底层原理,有些回答的并不是很好,面试官人很好,也很耐心,不过确实难了一些,没事,佛系了9月10日更新,一面已过二面一个小时项目靠打,深挖底层和设计思路,最后反问环节说对我比较认可,不知道过没过,由于都是问项目的,就不整理了,二面面试官很有水平,值得复盘
发面经攒人品
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务