chapter08_线程池的使用_1_在任务与执行策略之间的隐性耦合

  • (1) Executor框架的好处是将__任务的提交__和__任务的执行策略__进行解耦

    (2) 但是有些情况不适合用Executor框架

    依赖性任务

    一个线程中的任务依赖另一个线程中的任务或资源

    使用线程封闭机制的任务

    使用newSingleThreadExecutor可以把这种任务执行的很好,但是后续的开发人员一旦不知道这件事就完蛋了

    对响应时间敏感的任务

    如果任务的执行时间过长或者线程池的数量过小,很容易出现响应性不敏感的问题

    使用ThreadLocal的任务

    没懂

  • 线程饥饿死锁

    情况:A任务进入线程池中执行,但是它__依赖__B任务的资源或结果;但由于线程池太小,导致B任务一直在等待无法进入线程池

  • 运行时间较长的任务

    情况:任务的阻塞时间过长或者计算时间过长,导致线程池的响应性变得很糟糕

    解决办法:设置超时,如果任务一段时间内还没有完成就取消它(例如用Future.get()和Future.cancel()配合)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值