扫码阅读
手机扫码阅读
动态修改coreThread线程池拓展
494 2024-04-08
我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。
查看原文:动态修改coreThread线程池拓展
文章来源:
FunTester
扫码关注公众号
文章探讨了Java线程池的使用,特别是在面对大量初始化数据需求时,Java线程池的核心线程数(corePoolSize)和最大线程数(maximumPoolSize)的限制问题。作者指出,线程池不能根据等待队列数量动态调整活跃线程数,这限制了其在高负载情况下的处理能力。
为了解决这个问题,作者提出了自定义策略,包括动态调整活跃线程数。当等待队列长度超过100时,增加一个活跃线程;当等待队列为空时,减少一个活跃线程。这些操作都在一定的范围内进行。作者还介绍了检测策略的设计,一开始考虑在任务添加时进行检测,但后来决定使用定时机制,并在守护(daemon)线程中实现。
作者提供了daemon线程的示例代码,该线程保证主方法结束后关闭线程池,并通过设置1秒的间隔和5秒的线程池检测机制来动态调整线程数。在Springboot项目中,daemon线程会很快结束,因此需要写成一个定时任务。
文章最后提到了一个其他的API:ThreadPoolExecutor#addWorker,该API可以直接创建线程来执行任务,但因为它是私有的,作者认为直接调用不优雅,故没有采用。
文章由FunTester原创,提及了多个专题推荐,包括原创合集、接口和性能测试、Groovy专题以及其他测试相关的内容和社群风采。
想要了解更多内容?
查看原文:动态修改coreThread线程池拓展
文章来源:
FunTester
扫码关注公众号
FunTester的其他文章
可维护代码有感
一个优秀的程序员能够维护的代码数量大约2万行
物联网测试
在现在以及不远的未来家里的空调、冰箱房门可能有一个共同点:互联网连接。这种新现象被称为物联网。所有这些连接的硬件也由软件驱动的,这些软件应该经过软件测试。
固定QPS压测模式探索
最新的代码请移步我的GitHub,地址:https://github.com/JunManYuanLong/FunTester,gitee地址:https://gitee.com/fanapi/tester。
Selenium自动化的JUnit参数化实践
作为自动化测试人员,经常会遇到这样Selenium测试自动化场景:需要一次又一次地执行相同的测试用例,只是使用不同的输入和环境配置,从而使工作变得冗长且多余。
5步法助力自动化转型
手动测试人员应该权衡测试自动化相对于手动测试的好处,并且即可开始行动。
加入社区微信群
与行业大咖零距离交流学习
软件研发质量管理体系建设
白皮书上线