java使用Future

Future是一个接口,围绕着Future产生了线程的调用方式。

为什么要用Future?

通过调用Future的线程,可以获取线程执行的结果;而Thread,Runnable没有返回值。

方法详解

1.Future的方法说明:

cancel():取消任务,取消成功返回true,失败返回false。

isCancelled():任务是否被取消成功,正常取消成功返回true。

isDone():任务是否已经完成,若任务完成,则返回true。

get():获取执行结果,这个方法会产生阻塞,会一直等到任务执行完毕才返回。

get(long timeout, TimeUnit unit):用来获取执行结果,如果在指定时间内,还没获取到结果,就直接返回null。

2.Callable说明:定义Future的返回值

V call():这是泛型接口,返回的类型就是传递进来的V类型。

3.FutureTask说明:是Future接口的唯一一个实现类。

提供了构造方法:FutureTask(Callable<V> callable)。

如何使用Future?

  1. 定义Callable()。
  2. 定义FutureTask()。
  3. 运行线程,new Thread(FutureTask futureTask).start()。

用途:

  1. 使用线程的返回值,可以使用Future。
  2. 并行执行线程,最后并进行统计。
  3. 线程阻塞,只有isDone()后,才会执行下一个任务。
发布了31 篇原创文章 · 获赞 1 · 访问量 1175

猜你喜欢

转载自blog.csdn.net/quietbxj/article/details/97157861
今日推荐