Java中用Thread.join实现单任务分成多个任务最后合并结果集
来源:互联网 发布:项目管理pmp认证 知乎 编辑:程序博客网 时间:2024/05/16 07:09
执行任务的具体线程类:
package com.utils;import java.util.ArrayList;import java.util.List;public class MyThread extends Thread {private List<String> result = new ArrayList<String>();private String selfName;public MyThread(String selfName) {super();this.selfName = selfName;}@Overridepublic void run() {for(int i=0;i<3;i++){result.add(this.selfName + "-data" + i);}}public List<String> getResult() {return result;}public void setResult(List<String> result) {this.result = result;}public String getSelfName() {return selfName;}public void setSelfName(String selfName) {this.selfName = selfName;}}
package com.utils;import java.util.ArrayList;import java.util.Arrays;import java.util.List;public class MyThreadTest extends Thread {public static void main(String[] args) {List<String> resList = new ArrayList<String>();List<MyThread> threads = new ArrayList<MyThread>();for(int i=0;i<3;i++){MyThread thread = new MyThread("Thread" + i);thread.start();threads.add(thread);}for (MyThread thread : threads) {try {//主线程等待时间不超过10秒,若超过,则主线程直接走thread.join(10000); } catch (InterruptedException e) {e.printStackTrace();}}for (int i=0;i<threads.size();i++) {List<String> result = threads.get(i).getResult();if(result.size()==0 && threads.get(i).isAlive()){threads.get(i).interrupt();//中断超时的线程}else{resList.addAll(result);}}System.out.println("结果如下:\n" + resList);}}
运行结果如下:
结果如下:
[Thread0-data0, Thread0-data1, Thread0-data2, Thread1-data0, Thread1-data1, Thread1-data2, Thread2-data0, Thread2-data1, Thread2-data2]
- Java中用Thread.join实现单任务分成多个任务最后合并结果集
- Java并发编程-25-合并任务的结果
- java编写的hadoop wordcount,单MR任务实现按照词频排序输出结果
- 执行器实现返回多个任务并处理第一个结果
- java 如何运行多个任务并处理返回第一个结果
- 并发编程--合并任务的结果
- java 异步任务与结果
- [转]在PHP中用协同程序实现合作多任务
- 在PHP中用协同程序实现合作多任务
- java并发编程实战 第五章(2)合并任务的结果
- 将一个list分成多个list的Java实现。
- Fork/join框架执行任务并返回结果
- java中用Timer类执行定时任务
- UNION合并多个结果集
- java并行执行多个任务
- 定时任务实现 java
- java 定时任务实现
- Java定时任务实现
- 跨域问题
- HDOJ 1239 Calling Extraterrestrial Intelligence Again 13.04.21周赛结题报告
- github for Windows使用介绍
- 背包问题九讲(链接)
- ssh与ajax结合之json异常:org.apache.struts2.json.JSONException
- Java中用Thread.join实现单任务分成多个任务最后合并结果集
- SDWebImage 加载网络图片
- 常用web服务列表(三)
- vbs遍历文件夹中的文件和文件夹,及其子文件
- 调整内核printk的打印级别
- 取得客户端IP URL
- GCC编译命令
- 获取字符串中的数字,放入数组并对其求和
- SIP Response Messages