Callable接口

① Java 5.0 在 java.util.concurrent 提供了一个新的创建执行 线程的方式:Callable 接口
② Callable 接口类似于 Runnable,两者都是为那些其实例可 能被另一个线程执行的类设计的。

但是 Runnable 不会返 回结果,并且无法抛出经过检查的异常。
③ Callable 需要依赖FutureTask ,FutureTask 也可以用作闭 锁

TestCallable

package com.aff.juc;

import java.util.concurrent.Callable;
import java.util.concurrent.FutureTask; /*1.创建执行线程的方式三:实现Callable接口,相较于实现Runable接口的方式,
方法可有有返回值,并且可以跑出异常.
2.执行Callable接口方式,需要FutureTask 实现类的支持,用于接收运算结果。
FutureTask 是 Future 接口的实现类 */
public class TestCallable {
public static void main(String[] args) {
ThreadDemo4 td4 = new ThreadDemo4();
// 1.执行Callable方式,需要FutureTask实现类支持,用于接收计算结果
FutureTask<Integer> result = new FutureTask<>(td4);
new Thread(result).start();
// 2.接收线程运算后的结果
try {
Integer sum = result.get();
System.out.println(sum);
System.out.println("-----------");
} catch (Exception e) {
e.printStackTrace();
}
}
} /*
* class ThreadDemo3 implements Runnable{
*
* @Override public void run() { } }
*/ class ThreadDemo4 implements Callable<Integer> { @Override
public Integer call() throws Exception {
int sum = 0;
for (int i = 0; i < 100; i++) {
System.out.println(i);
sum += i;
}
return sum;
}
}

最新文章

  1. Multiple Contexts have a path of 错误
  2. Java中的static的使用
  3. 教你如何用PS制作多款按钮UI设计教程
  4. 操作css样式
  5. javascript之对象
  6. LINQ之路(2):LINQ to SQL本质
  7. 慕课网视频破解付费分享-前端开发-Python等
  8. awk之NR==FNR问题
  9. IBM developer:Setting up the Kafka plugin for Ranger
  10. Tomcat系列(11)——Tomcat 部署web应用的4种方法
  11. ASP.NET Core 2.1 : 十二.内置日志、使用Nlog将日志输出到文件
  12. 【转】简单理解Vue中的nextTick
  13. SQLServer语法常用总结
  14. c++ 静态变量报错 undefined reference to static members
  15. jquery操作radio,checkbox
  16. 【文文殿下】【洛谷】分治NTT模板
  17. JS 二维数组排序
  18. Java从零开始学十四(包和访问控制)
  19. sqllite 试图加载格式不正确的程序。 (异常来自 HRESULT:0x8007000B)
  20. FastReport.Net使用:[28]数据合并

热门文章

  1. varnish 项目实战
  2. javascript阻止子元素继承父元素事件
  3. C# 基础至集合-数组、List&lt;T&gt;、ArrayList、LinkedList、HashMap的一些区别
  4. Day_10【常用API】扩展案例1_利用人出生日期到当前日期所经过的毫秒值计算出这个人活了多少天
  5. java接口学习体会
  6. python是如何进行参数传递的?
  7. python语法学习第二天--条件与循环
  8. Nginx|构建简单的文件服务器(mac) 续-FastDFS安装(mac)|文件存储方案
  9. 2018-06-30 js事件
  10. Java并发编程:线程和锁的使用与解析