Java并发工具库:Future与Task的区别
Future
和Task
都是Java并发工具库中的重要概念,它们分别服务于不同的场景。
Future
:
- 定义:
Future<T>
是表示异步操作结果的对象。它代表一个可以在将来获取的值。 - 使用场景:主要用于需要等待某个计算完成并返回结果的情况。
Task
:
- 定义:
Runnable r = () -> {};
创建了一个Runnable
任务,它实际上是一个匿名内部类实例。ExecutorService
或者Thread
直接通过这个Runnable
来执行任务。 - 使用场景:主要用于需要手动启动的线程任务,以及由
ExecutorService
管理的线程池任务。
总结来说,Future
是用于异步操作结果的,通常在ExecutorService
中获取。而Task
则是直接在线程或线程池中执行的任务实例。
还没有评论,来说两句吧...