线程池 submit 和 execute
来源:互联网 发布:网络贷款个人征信 编辑:程序博客网 时间:2024/05/09 04:53
public class RunnableTestMain {
public static void main(String[] args) {
ExecutorService pool = Executors.newFixedThreadPool(2);
/**
* execute(Runnable x) 没有返回值。可以执行任务,但无法判断任务是否成功完成。
*/
pool.execute(new RunnableTest("Task1"));
/**
* submit(Runnable x) 返回一个future。可以用这个future来判断任务是否成功完成。请看下面:
*/
Future future = pool.submit(new RunnableTest("Task2"));
try {
if(future.get()==null){//如果Future's get返回null,任务完成
System.out.println("任务完成");
}
} catch (InterruptedException e) {
} catch (ExecutionException e) {
//否则我们可以看看任务失败的原因是什么
System.out.println(e.getCause().getMessage());
}
}
}
public class RunnableTest implements Runnable {
private String taskName;
public RunnableTest(final String taskName) {
this.taskName = taskName;
}
@Override
public void run() {
System.out.println("Inside "+taskName);
throw new RuntimeException("RuntimeException from inside " + taskName);
}
}
public static void main(String[] args) {
ExecutorService pool = Executors.newFixedThreadPool(2);
/**
* execute(Runnable x) 没有返回值。可以执行任务,但无法判断任务是否成功完成。
*/
pool.execute(new RunnableTest("Task1"));
/**
* submit(Runnable x) 返回一个future。可以用这个future来判断任务是否成功完成。请看下面:
*/
Future future = pool.submit(new RunnableTest("Task2"));
try {
if(future.get()==null){//如果Future's get返回null,任务完成
System.out.println("任务完成");
}
} catch (InterruptedException e) {
} catch (ExecutionException e) {
//否则我们可以看看任务失败的原因是什么
System.out.println(e.getCause().getMessage());
}
}
}
public class RunnableTest implements Runnable {
private String taskName;
public RunnableTest(final String taskName) {
this.taskName = taskName;
}
@Override
public void run() {
System.out.println("Inside "+taskName);
throw new RuntimeException("RuntimeException from inside " + taskName);
}
}
0 0
- 线程池 submit 和 execute
- 线程池 submit 和 execute
- 线程池ExecutorService的submit和execute
- 线程池ExecutorService的submit和execute
- 线程池ExecutorService的submit和execute
- 线程池ExecutorService的submit和execute
- 线程池ExecutorService的submit和execute
- 线程池的submit和execute方法区别
- 线程池的submit和execute的区别
- 浅谈线程池及submit()和execute()的区别
- 【多线程 5】线程池的类型以及submit()和execute()的区别
- java-源码解读-线程池提交之execute和submit有何不同
- executorservice的submit和execute
- submit和execute的区别
- Submit和execute的区别
- ExecutorService的execute和submit方法
- ExecutorService的execute和submit方法
- ExecutorService中submit和execute的区别
- Java基础(三)——形参个数可变的方法
- 全手工制作arm-linux交叉编译工具链《一》-转
- 《MVC+EF实现增删改查》——查
- C++中的左值和右值
- Ubuntu搭建嵌入式开发(交叉编译)环境-转
- 线程池 submit 和 execute
- 学习Wireshark(十):应用Wireshark显示过滤器分析特定数据流(下)
- Python模块学习:glob 文件路径查找
- 直接双击启动tomcat中的startup.bat闪退原因及解决方法
- 人民币升值与股价上涨
- iOS远程推送的原理
- 深度学习系列(十):从卷积计算到卷积神经网络CNN
- MySQL函数大全系列(日期时间)
- 树