首页>代码>spring线程池ThreadPoolExecutor配置并且得到任务执行的结果>/zuidaima_ThreadPoolTaskExecutor/src/main/java/com/zuidaima/threadpool/StartTaskThread.java
package com.zuidaima.threadpool; import java.util.concurrent.ExecutionException; import java.util.concurrent.FutureTask; import java.util.concurrent.TimeUnit; import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; public class StartTaskThread implements Runnable { private ThreadPoolTaskExecutor threadPoolTaskExecutor; private int i; public StartTaskThread(ThreadPoolTaskExecutor threadPoolTaskExecutor, int i) { this.threadPoolTaskExecutor = threadPoolTaskExecutor; this.i = i; } @Override public synchronized void run() { String task = "task@ " + i; System.out.println("创建任务并提交到线程池中:" + task); FutureTask<String> futureTask = new FutureTask<String>( new ThreadPoolTask(task)); threadPoolTaskExecutor.execute(futureTask); // 在这里可以做别的任何事情 String result = null; try { // 取得结果,同时设置超时执行时间为1秒。同样可以用future.get(),不设置执行超时时间取得结果 result = futureTask.get(1000, TimeUnit.MILLISECONDS); } catch (InterruptedException e) { futureTask.cancel(true); } catch (ExecutionException e) { futureTask.cancel(true); } catch (Exception e) { futureTask.cancel(true); // 超时后,进行相应处理 } finally { System.out.println("task@" + i + ":result=" + result); } } }
最近下载更多
heweimin LV13
2023年7月27日
2469095052 LV8
2022年5月27日
mylzdy LV12
2022年5月12日
huasir2018 LV14
2020年5月25日
宇文笑 LV5
2019年8月29日
太阳暖人不暖心 LV7
2019年5月7日
1943815081 LV13
2019年1月2日
zinshao LV12
2018年11月24日
h895413025 LV1
2018年11月13日
1633788059 LV12
2018年5月25日
最近浏览更多
yyh1252 LV8
2023年11月23日
heweimin LV13
2023年7月27日
微信网友_15002431817
2023年1月17日
暂无贡献等级
1529860026 LV24
2022年9月5日
mylzdy LV12
2022年5月12日
1234mama LV19
2022年3月22日
shaoluyu LV4
2022年3月18日
2469095052 LV8
2021年12月29日
gaojian0612 LV2
2021年11月23日
随便取个名字_哈哈 LV27
2021年11月7日