首页 > 编程 > Java > 正文

Java多线程Callable接口实现代码示例

2019-11-26 11:07:40
字体:
来源:转载
供稿:网友

对于多线程,大家并不陌生,对于如何创建线程也是轻车熟路,对于使用new thread和实现runable接口的方式,不再多说。这篇博文我们介绍第三种:实现Callable接口。

Callable接口

接口定义:

@FunctionalInterfacepublic interface Callable<V> {  V call() throws Exception;}

从Callable的定义可以看出:

Callable接口类似于Runnable,两者都是为那些其实例可能被另一个线程执行的类设计的,方法可以有返回值,并且可以抛出异常。但是Runnable不行。

Callable需要依赖FutureTask,用于接收运算结果。一个产生结果,一个拿到结果。FutureTask是Future接口的实现类,也可以用作闭锁。

简单实例

计算0到100相加,返回结果。

public class TestCallable {  public static void main(String[] args) {    CallableThreadDemo ctd = new CallableThreadDemo();    //1.执行Callable方式,需要FutureTask实现类的支持,用于接收运算结果    FutureTask<Integer> result = new FutureTask<Integer>(ctd);    new Thread(result).start();    //2.接收线程运算后的结果    try {      Integer sum = result.get(); //FutureTask 可用于闭锁      System.out.println(sum);    } catch (InterruptedException | ExecutionException e) {      e.printStackTrace();    }  }}class CallableThreadDemo implements Callable<Integer>{  @Override  public Integer call() throws Exception {    int sum = 0;    for (int i = 0; i <= 100; i++) {      sum += i;    }    return sum;  }}

总结

Callable接口其实特别简单,在多线程环境中,返回结果。

希望本文所述对大家了解多线程及callable接口有所帮助。感兴趣的朋友可以继续参阅本站:浅谈Java面向接口编程Java编程接口回调一般用法代码解析等。感谢大家对本站的支持!

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表