FutureTask demo
2024-09-19 22:15:19
package com.xinwei.order.entity; import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future; public class CallableTest { public static void main(String[] args) {
//创建线程池
ExecutorService es = Executors.newSingleThreadExecutor();
//创建Callable对象任务
CallableDemo calTask=new CallableDemo();
//提交任务并获取执行结果
Future<Integer> future =es.submit(calTask);
//关闭线程池
es.shutdown();
try {
Thread.sleep(2000);
System.out.println("主线程在执行其他任务"); if(future.get()!=null){
//输出获取到的结果
System.out.println("future.get()-->"+future.get());
}else{
//输出获取到的结果
System.out.println("future.get()未获取到结果");
} } catch (Exception e) {
e.printStackTrace();
}
System.out.println("主线程在执行完成");
}
}
package com.xinwei.order.entity; import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.FutureTask; public class eeeee { public static void main(String[] args) {
//创建线程池
ExecutorService es = Executors.newSingleThreadExecutor();
//创建Callable对象任务
CallableDemo calTask=new CallableDemo();
//创建FutureTask
FutureTask<Integer> futureTask=new FutureTask<>(calTask);
//执行任务
es.submit(futureTask);
//关闭线程池
es.shutdown();
try {
Thread.sleep();
System.out.println("主线程在执行其他任务"); if(futureTask.get()!=null){
//输出获取到的结果
System.out.println("futureTask.get()-->"+futureTask.get());
}else{
//输出获取到的结果
System.out.println("futureTask.get()未获取到结果");
} } catch (Exception e) {
e.printStackTrace();
}
System.out.println("主线程在执行完成");
}
}
import java.util.concurrent.Callable; public class CallableDemo implements Callable<Integer> { private int sum;
@Override
public Integer call() throws Exception {
System.out.println("Callable子线程开始计算啦!");
Thread.sleep(); for(int i= ;i<;i++){
sum=sum+i;
}
System.out.println("Callable子线程计算结束!");
return sum;
}
}
最新文章
- DIV 垂直 垂直水平 居中
- &#39;UserInfoBLL&#39; node cannot be resolved for the specified context [MVC展示数据.Controllers.LoginController]问题解决
- RabbitMQ学习总结 第六篇:Topic类型的exchange
- Codeforces Round #Pi (Div. 2) B. Berland National Library 模拟
- 无法使用SQL login去登陆SQL Server - &#39;Password did not match&#39;
- 201521123006 《Java程序设计》第1周学习总结
- mac pycharm快捷键整理
- 2018-2019-2 网络对抗技术 20165316 Exp5 MSF基础应用
- HTTP-从输入url到请求回数据发生了什么
- 本地开发环境搭建(windows)
- day5_判断价格输入是否是正整数或正小数
- 修改ORA-28001 口令已经失效问题
- flume使用之httpSource
- ELK环境搭建完整说明
- 转,敏感词过滤,PHP实现的Trie树
- 【Unity】4.4 添加角色控制器
- import-module的注意事项与NDK_MODULE_PATH的配置
- JSON数组,JSON对象,数组的区别与基本操作整理
- MySQL命令行导入sql文件时出现乱码解决方案
- linux-2.6内核驱动学习——jz2440之输入子系统