码迷,mamicode.com
首页 > 其他好文 > 详细

5、JUC--实现 Callable 接口

时间:2019-04-30 01:05:51      阅读:127      评论:0      收藏:0      [点我收藏+]

标签:tst   inf   class   src   接口   stack   ima   code   注意   

Callable接口

? Java 5.0 在 java.util.concurrent 提供了一个新的创建执行
  线程的方式:Callable 接口


? Callable 接口类似于 Runnable,两者都是为那些其实例可
  能被另一个线程执行的类设计的。但是 Runnable 不会返
  回结果,并且无法抛出经过检查的异常。


? Callable 需要依赖FutureTask ,FutureTask 也可以用作闭锁

 

 

创建执行线程的方法有四种:

1、继承Thread类或者创建线程类

2、通过实现Runable接口创建线程类

3、通过Callable接口

4、通过线程池创建线程

 

相对于Runable接口的不同:

可以使用泛型,方法可以有返回值没并且可以抛出异常

 

 

实例:

public class TestCallabel {
    
public static void main(String[] args) {
    ThreadDemoCallable tc = new ThreadDemoCallable();
    
    //此时的使用方式有些不同
    //1、需要FutureTask实现类的支持,用于接收运算结果 
    FutureTask<Integer> result = new FutureTask<>(tc);
    
    new Thread(result).start();
    //2、接收运算的结果
    //注意:只有上述的线程之后下方的代码才会执行----闭锁
    try {
        Integer sum = result.get();
        System.out.println(sum);
    } catch (InterruptedException e) {
        e.printStackTrace();
    } catch (ExecutionException e) {
        e.printStackTrace();
    }
}

}

//可以使用泛型
class ThreadDemoCallable implements Callable<Integer>{
    @Override
    public Integer call() throws Exception {
        //计算整合
        int sum = 0;
        for(int i = 0;i <10;i++){
            sum +=i;
        }
        return sum;
    }
}

技术图片

效率高

可以实现和闭锁一样的实现功能

 

5、JUC--实现 Callable 接口

标签:tst   inf   class   src   接口   stack   ima   code   注意   

原文地址:https://www.cnblogs.com/Mrchengs/p/10793688.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!