Executor
ExecutorService接口 execute 执行无返回值的任务 submit 执行有返回值的任务
Callable 约等于 Runnable
Executors
ThreadPool 任务队列 结束任务队列
Future
parallelComputing线程池并行计算
1.FixedThreadPool
2.CachedThreadPool 弹性有任务就会开启新线程 默认线程等待时间60s
3.SingleThreadPool 单线程只有一个线程 保证线程执行先后顺序
4.ScheduledThreadPool 定时任务
定时器线程池 可线程复用!(空闲时会复用)
scheduleAtFixedRate(Runnable cmd,long initDelay,long period,TimeUnit unit )
可替代Timer(没次起新线程)
5.WorkStealingPool 工作窃取
自己线程任务队列执行完毕后,会其任务队列里主动找任务执行
Daemon 精灵线程、守候进程、后台进程
ForkJoinPool实现
6. ForkJoinPool fork分叉 join合并
任务拆分
Daemon 精灵线程、守候进程、后台进程
ForkJoinTask任务拆分 常用继承自如下:
RecursiveAction 无返回值 RecursiveTask 有返回值 然后子任务join 重写compute() 根据阈值 拆分子任务规则 然后fork() 新线程启动
递归过程ForkJoinPool自己维护