线程池中的坑

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,因此可以根据业务需求而选择合理的使用线程池。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值