Java Callable 和Runnable
来源:互联网 发布:食品安全数据分析 编辑:程序博客网 时间:2024/06/05 19:27
Java Callable 和Runnable 区别:
Callable可以返回值,可以跑出异常,Runnable启动线程的方法通常为start,而Callable需要使用ExecutorService submit 方法。
例子:
//: concurrency/CallableDemo.java
import java.util.concurrent.*;
import java.util.*;
class TaskWithResult implements Callable<String> {
private int id;
public TaskWithResult(int id) {
this.id = id;
}
public String call() {
return "result of TaskWithResult " + id;
}
}
public class CallableDemo {
public static void main(String[] args) {
ExecutorService exec = Executors.newCachedThreadPool();
ArrayList<Future<String>> results =new ArrayList<Future<String>>();
for(int i = 0; i < 10; i++)
results.add(exec.submit(new TaskWithResult(i)));
for(Future<String> fs : results)
try {
// get() blocks until completion:
System.out.println(fs.get());
} catch(InterruptedException e) {
System.out.println(e);
return;
} catch(ExecutionException e) {
System.out.println(e);
} finally {
exec.shutdown();
}
}
}
Callable可以返回值,可以跑出异常,Runnable启动线程的方法通常为start,而Callable需要使用ExecutorService submit 方法。
例子:
//: concurrency/CallableDemo.java
import java.util.concurrent.*;
import java.util.*;
class TaskWithResult implements Callable<String> {
private int id;
public TaskWithResult(int id) {
this.id = id;
}
public String call() {
return "result of TaskWithResult " + id;
}
}
public class CallableDemo {
public static void main(String[] args) {
ExecutorService exec = Executors.newCachedThreadPool();
ArrayList<Future<String>> results =new ArrayList<Future<String>>();
for(int i = 0; i < 10; i++)
results.add(exec.submit(new TaskWithResult(i)));
for(Future<String> fs : results)
try {
// get() blocks until completion:
System.out.println(fs.get());
} catch(InterruptedException e) {
System.out.println(e);
return;
} catch(ExecutionException e) {
System.out.println(e);
} finally {
exec.shutdown();
}
}
}
- Java Callable 和Runnable
- Java Callable 和Runnable
- java线程:callable和Runnable
- java concurrent—runnable和callable
- java 线程 接口 Callable 和Runnable
- Java——Runnable 和Callable
- Java并发之Callable和Runnable
- Callable和Runnable
- Thread、Runnable和Callable
- Thread、Runnable和Callable
- Callable ,Runnable 和 Thread
- Runnable、Callable和Future
- 多线程-Callable和Runnable
- Callable和Runnable
- Callable和Runnable
- callable和future和runnable
- Java中Runnable和Thread以及Callable的区别
- java多线程问题 Runnable和Callable有什么不同?
- 数据库字段对比语句
- php安全设置:禁用危险函数
- 2011 Multi-University Training Contest 10 - Host by HRBEU hdu 3933 Dark Parth
- J2me中运行JAD文件,报com.sun.kvem.midletsuite.InvalidJadException: Reason = 22错误解决方案
- 一个效果非常不错的JAVA数据库连接池
- Java Callable 和Runnable
- 颜色代码表
- 获取CTabView中不同Tab页
- 关于MP3播放器知识收集
- 入了giant FCR 3100,纪念一下!¥1800元
- CuteEditor 6.0 使用方法详解
- poj 3715
- linux 开发工具集合
- warning: function declaration isn't a prototype