executor 和task 优先于线程(68)

java.util.concurrent 包里有一个Executor 框架

  • 基于接口的任务执行工具
  • 只需要一行代码
    • 73fd53b4be6dc88ef76de51e1114a8a0cb0.jpg
  • 提交一个runnable 方法
    • c425d5309e685c1288d2caf914a56a58c03.jpg
  • 优雅的终止(必须做到,不然虚拟机可能不会退出)
    • 92b0b699b70751477533c92cb11c93c588e.jpg

对于负载不重的服务

  • Executors.newCachedThreadPool 就能满足
    • 不太适合大负载
    • 因为被提交的任务没有排队,而是直接交给线程执行,没有空闲就会new 新的线程

大负载服务器

  • Executors.newFixedThreadPool
    • 包含固定数量线程
    • 最大限度的控制,直接使用ThreadPoolExecutor

请尽量不要使用自己的工作队列、也尽量不要直接使用线程

  • Thread 是执行机制、又是工作单元(任务:task)
  • 现在二者分开,task由Runnable、Callable来充当
    • 执行机制executor service

本质上讲,executor 框架所做的工作是执行,就像Collection 框架做的是 聚集

转载于:https://my.oschina.net/u/3847203/blog/2987610

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值