Callable 与 Runable 使用心得
来源:互联网 发布:应急数据采集更新制度 编辑:程序博客网 时间:2024/06/04 19:13
介绍:
自JDK1.5以后,Java提供了Callable接口来增强并发编程,用来解决Runable的不足。在这之前,我们如果想实现多线程,一般情况下会使用继承Thread类或实现Runable接口两种方式。但是一直以来,获取返回值一直是一个大问题。通常需要编写大量无关紧要的代码。
Callable与Runable的区别:
1. Callable 使用 call方法,而Runable使用run方法
2. Callable 具有返回值,而Runable没有返回值
3. Callable的call方法可抛出异常,而Runnable的run方法不能抛出异常
用法:
1. Thead复写类:
2. 调用
更多技术文章请关注微信公众号:zssorin,记住我的QQ:2392119885
自JDK1.5以后,Java提供了Callable接口来增强并发编程,用来解决Runable的不足。在这之前,我们如果想实现多线程,一般情况下会使用继承Thread类或实现Runable接口两种方式。但是一直以来,获取返回值一直是一个大问题。通常需要编写大量无关紧要的代码。
Callable与Runable的区别:
1. Callable 使用 call方法,而Runable使用run方法
2. Callable 具有返回值,而Runable没有返回值
3. Callable的call方法可抛出异常,而Runnable的run方法不能抛出异常
用法:
1. Thead复写类:
public class TestThread implements Callable<String> { @Override public String call() throws Exception { return "Hello, World!"; }}这里的Callable是泛型的,其中可以指定其返回类型。比如这里的返回类型为String
2. 调用
public class Tester { public static void main(String[] args) throws InterruptedException, ExecutionException { long beginTime = System.currentTimeMillis(); // 创建一个线程池 ExecutorService pool = Executors.newFixedThreadPool(1); // 创建一个有返回值的任务 Callable c1 = new TestThread(); // 执行任务并获取Future对象 Future f1 = pool.submit(c1); // 从Future对象上获取任务的返回值,并输出到控制台 System.out.println(">>>" + f1.get()); // 关闭线程池 pool.shutdown(); long endTime = System.currentTimeMillis(); System.out.println("time:" + (endTime - beginTime)); }}一直以来困扰我多线程取值的问题终于解决了,开心~
更多技术文章请关注微信公众号:zssorin,记住我的QQ:2392119885
0 0
- Callable 与 Runable 使用心得
- 细说"Callable"与"Runable接口"
- Java异步并发Callable与Runable
- Callable与Runable接口 submit与execute区别
- Thead、runable、callable总结
- Java 并发编程 runable,callable,future,futuretask
- Thread 与Runable区别
- java Thread与Runable
- callable和runable以及线程池对他们的执行
- Java多线程编程Runable,Callable,Feature区别和用法
- 使用Runable接口创建线程
- 多线程Thread与Runable之间的区别
- android Thread 与 Runable的区别
- Thread Runable线程与线程类
- 译 -- Java 并发编程(多线程)一 | Callable and Future | CountDownLatch | Runable
- java多线程Future和Callable类的解释与使用
- 高级并发编程学习-callable与Future的使用
- 使用Callable与Future来创建启动线程
- 智慧北京:菜单UI和数据的加载
- 一种高性能网络游戏服务器架构设计
- 【PAT甲级】1025. PAT Ranking (25)
- 415. Add Strings
- 数据结构----顺序栈实现逆波兰表达式(后缀表达式)求解
- Callable 与 Runable 使用心得
- Android网络请求---AsyncHttpClient的使用
- 第七周 oj 2679百位数分解
- 在 Linux 下搭建 Git 服务器
- github中git push origin master出错:error: failed to push some refs to
- Android_RxJava入门高级全攻略
- 在postman里面开启chrome调试工具
- git 删除和重命名文件
- cpp 3.5