线程创建新增两种方式
新增方式一:实现Callable接口
与使用Runnable(重写run方法)相比,Callable(重写call方法)功能更强大些
call()方法相比run()方法,可以有返回值
方法可以抛出异常
支持泛型的返回值
需要借助FutureTask类,比如获取返回结果
Future接口
可以对具体Runnable、Callable任务的执行结果进行取消、查询是否完成、获取结果等。
FutureTask是Future接口的唯一实现类。
FutureTask同时实现了Runnable,Future接口。它既可以作为Runnable被线程执行,又可以作为Future得到Callable的返回值。
新增方式二:使用线程池
背景:
经常创建和销毁、使用量特别大的资源,比如并发情况下的线程,
对性能影响很大。
思路:
提前创建好多个线程,放入线程池中,使用时直接获取,使用完放回池中。可以避免频繁创建销毁、实现重复利用。类似生活中的公共交通工具。

浙公网安备 33010602011771号