本文主要是介绍线程池中的坑,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1、Spring的线程池定义如下
<bean id="threadPoolExecutor"class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor"><property name="corePoolSize" value="3"/><property name="maxPoolSize" value="50"/><property name="queueCapacity" value="300"/></bean>
2、如果服务端有多个业务A,B公用线程池,如果A,B没有相互依赖,则没啥问题,一旦A,B 有依赖,则可能出现系统挂住。
因为可能线程池被A请求占满,A请求依赖B,而B一直在排队,所以出现死循环。
3、需要启动一个线程对线程池进行监控,保证线程池健康的执行。(重要)比如可以打印日志,然后在可视化
如果解决这种问题
将线程池进行隔离,创建多个线程池。
线程池的调度很消耗CPU,因此可以根据业务需求而选择合理的使用线程池。
这篇关于线程池中的坑的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!