Java教程

Java(86):通过Callable接口+Future接口实现多线程

本文主要是介绍Java(86):通过Callable接口+Future接口实现多线程,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

通过Callable接口+Future接口实现多线程

优点:可以获取返回值
Callable是类似于Runnable的接口,实现Callable接口的类和实现Runnable的类是课被其他线程执行的任务。
Callable和Runnable有几点不同:
1)Callable规定的方法是call(),而Runnable规定的方法是runn()
2)call方法可抛出异常,而runn方法是不能抛出异常的
3)Callable的任务执行后可返回值,运行Callable任务可难道一个Future对象,而Runnable的任务是没有返回值的。
Future表示异步计算的结果,它提供了检查计算是否完成的方法,以等待计算的完成,并检索计算的结果。
通过Futrue对象可了解任务的执行情况,可取消任务的执行,还可获取任务执行的结果。
缺点:繁琐

思路:
1)创建Callable实现类+重写call
2)借助执行调度服务ExecutorService,获取Future对象
  2.1)ExecutorService executor =Executors.NewFixedThreadPolls(2)
  2.2) Future result=executor.submit(实现类的对象)
3)获取值result.get()
4) 停止服务executor.shutdown(); 或executor.shutdownNow()

这篇关于Java(86):通过Callable接口+Future接口实现多线程的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!