使用ScheduledExecutorService疑惑

定时器类

  ScheduledExecutorService =Executors.newScheduledThreadPool(10);

启动10线程任务,定时去干活。

  1 发现一个问题。 用掉5个线程,完成4个,还有一个再使用中。

    这个时候再去使用的时候,发现又创建新的线程。而没有使用还回去的,那4个线程。

    一直等10 线程都创建完成了,才会循环往复使用。在使用过程,千万不要把线程数开的太大。估算一下系统并发线程任务数目,否则浪费系统资源。还有可能导致down机。

  2 submit 和 execute 两个方法区别。

     submit 可以返回结果,execute 没有结果。但是一定要记得。这两个方法不是立即执行的,而是等空余线程才会去执行。

  3  scheduleAtFixedRate 定时任务。

      TimeUnit 最后一个参数单位是可以指定的。记得指定后,前面 initialDelay,period 这两个参数都会使用这个单位。

  4  invokeAll 这个方法 一起执行一批任务。这个方法好。在并行结算有用。

      比如三台计算都去计算一个任务,有了,可以同时启动这批任务。然后去返回结果。

   

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值