1、继承Thread类,实现run方法
2、实现Runnable接口,实现run方法
3、使用ThreadPoolExecutor线程池,执行execute方法
4、实现Callable接口+FutureTask(获取处理结果+处理异常)
5、使用@Asyn注解
Executors.newCachedThreadPool()
核心线程数=最大线程数
Executors.newFixedThreadPool()
定时或周期性执行任务
Executors.newScheduledThreadPool()
Executors.newSingleThreadExecutor()
核心线程数
最大线程数
存活时间
阻塞队列,有界队列LinkedBlockingDeque
线程创建工厂
拒绝策略,AbortPolicy、DiscardPolicy、CallerRunsPolicy
JDK8,链式调用
另起线程完成调用中的部分计算,不需要等待计算结果
无返回值,runAsync(runnable)
指定线程池,runAsync(runnable, executor)
有返回值,supplyAsync(supplier)
有返回值指定线程池,supplyAsync(supplier, executor)
感知发生异常,不能处理异常
处理异常
获取上一个线程结果,返回当前线程结果
获取上一个线程结果
后续操作
执行第3个任务,不获取结果,无返回值
获取结果,无返回值
有返回值
不获取结果,无返回值
获取结果,无返回值
获取结果,有返回值
等待所有任务完成
一个任务完成即可
Copyright ©2010-2022 比特日记 All Rights Reserved.