线程创建新增两种方式

新增方式一:实现Callable接口

与使用Runnable(重写run方法)相比,Callable(重写call方法)功能更强大些

call()方法相比run()方法,可以有返回值

方法可以抛出异常

支持泛型的返回值

需要借助FutureTask类,比如获取返回结果

Future接口

可以对具体Runnable、Callable任务的执行结果进行取消、查询是否完成、获取结果等。

FutureTask是Future接口的唯一实现类。

FutureTask同时实现了Runnable,Future接口。它既可以作为Runnable被线程执行,又可以作为Future得到Callable的返回值。

新增方式二:使用线程池

背景:

经常创建和销毁、使用量特别大的资源,比如并发情况下的线程,

对性能影响很大。

思路:

提前创建好多个线程,放入线程池中,使用时直接获取,使用完放回池中。可以避免频繁创建销毁、实现重复利用。类似生活中的公共交通工具。

好处

提高响应速度(减少了创建新线程的时间)

降低资源消耗(重复利用线程池中线程,不需要每次都创建)

便于线程管理

posted @ 2021-12-05 19:33  边缘气息  阅读(57)  评论(0)    收藏  举报