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()

上一篇:多线程第三种创建方式-Callable()


下一篇:JUC之Callable接口回顾和JUC辅助类