java带返回值的线程示例,简单方便

来源:互联网 发布:个人手机记工软件 编辑:程序博客网 时间:2024/06/05 11:41
for (CreditSourceUnit creditSourceUnit : creditSourceUnitList) {    DoublePubAddEntity doublePubAddEntity = new DoublePubAddEntity();    GetDoublePubAddDataThread getSourceUnitDataThread = new GetDoublePubAddDataThread(doublePubAddEntity);    getSourceUnitDataThread.queryMapweek = queryMapweek;    getSourceUnitDataThread.queryMapDoweek = queryMapDoweek;    getSourceUnitDataThread.queryMapmonth = queryMapmonth;    getSourceUnitDataThread.queryMapDomonth = queryMapDomonth;    getSourceUnitDataThread.queryMapTmonth = queryMapTmonth;    getSourceUnitDataThread.queryMaphalfyear = queryMaphalfyear;    getSourceUnitDataThread.queryMapyear = queryMapyear;    getSourceUnitDataThread.xzcfSysService = xzcfSysService;    getSourceUnitDataThread.xzxkSysService = xzxkSysService;    getSourceUnitDataThread.creditSourceUnit = creditSourceUnit;    getSourceUnitDataThread.str = String.valueOf(i);    Thread t1 = new Thread(getSourceUnitDataThread);    mythread.add(t1);    t1.start();    i++;    listDoublePubAddEntity.add(doublePubAddEntity);}int wait = 0;while (true) {    wait++;    Thread.sleep(200);    boolean allover = true;    for (Thread thread : mythread) {        if (!thread.getState().equals(Thread.State.TERMINATED)) {            allover = false;        }    }    if (allover) {        break;    }    if (wait > 300) {        for (Thread thread : mythread) {            try {                thread.interrupt();            } catch (Exception ex) {                ex.printStackTrace();            }        }        break;    }}
GetDoublePubAddDataThread .class
public class GetDoublePubAddDataThread implements Runnable {    public String str;    public CreditSourceUnit creditSourceUnit;    public Map queryMapweek;    public Map queryMapDoweek;    public Map queryMapmonth;    public Map queryMapDomonth;    public Map queryMapTmonth;    public Map queryMaphalfyear;    public Map queryMapyear;    public DoublePubAddEntity doublePubAddEntity;    public XzcfSysService xzcfSysService;    public XzxkSysService xzxkSysService;    public GetDoublePubAddDataThread(DoublePubAddEntity _doublePubAddEntity) {        doublePubAddEntity = _doublePubAddEntity;    }    @Override    public void run() {        SimpleDateFormat dfs = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");        Date stratTime = null;        try {            stratTime = dfs.parse(dfs.format(new Date()));        } catch (ParseException e) {            e.printStackTrace();        }        if (queryMapweek != null && queryMapweek.size() > 0) {            doublePubAddEntity.setWeekXzcfTotal(xzcfSysService.getcuntxzcf(creditSourceUnit, queryMapweek));            doublePubAddEntity.setWeekXzxkTotal(xzxkSysService.getcuntxzxk(creditSourceUnit, queryMapweek));        } else {            doublePubAddEntity.setWeekXzcfTotal("--");            doublePubAddEntity.setWeekXzxkTotal("--");        }        if (queryMapDoweek != null && queryMapDoweek.size() > 0) {            doublePubAddEntity.setDoWeekXzcfTotal(xzcfSysService.getcuntxzcf(creditSourceUnit, queryMapDoweek));            doublePubAddEntity.setDoWeekxzxkTotal(xzxkSysService.getcuntxzxk(creditSourceUnit, queryMapDoweek));        } else {            doublePubAddEntity.setDoWeekXzcfTotal("--");            doublePubAddEntity.setDoWeekxzxkTotal("--");        }        if (queryMapmonth != null && queryMapmonth.size() > 0) {            doublePubAddEntity.setMonthXzcfTotal(xzcfSysService.getcuntxzcf(creditSourceUnit, queryMapmonth));            doublePubAddEntity.setMonthXzxkTotal(xzxkSysService.getcuntxzxk(creditSourceUnit, queryMapmonth));        } else {            doublePubAddEntity.setMonthXzcfTotal("--");            doublePubAddEntity.setMonthXzxkTotal("--");        }        if (queryMapDomonth != null && queryMapDomonth.size() > 0) {            doublePubAddEntity.setDoMothXcfkTotal(xzcfSysService.getcuntxzcf(creditSourceUnit, queryMapDomonth));            doublePubAddEntity.setDoMothXzxkTotal(xzxkSysService.getcuntxzxk(creditSourceUnit, queryMapDomonth));        } else {            doublePubAddEntity.setDoMothXcfkTotal("--");            doublePubAddEntity.setDoMothXzxkTotal("--");        }        if (queryMapTmonth != null && queryMapTmonth.size() > 0) {            doublePubAddEntity.setTmonthXzcfTotal(xzcfSysService.getcuntxzcf(creditSourceUnit, queryMapTmonth));            doublePubAddEntity.setTmonthXzxkTotal(xzxkSysService.getcuntxzxk(creditSourceUnit, queryMapTmonth));        } else {            doublePubAddEntity.setTmonthXzcfTotal("--");            doublePubAddEntity.setTmonthXzxkTotal("--");        }        if (queryMaphalfyear != null && queryMaphalfyear.size() > 0) {            doublePubAddEntity.setHalfYearXzcfTotal(xzcfSysService.getcuntxzcf(creditSourceUnit, queryMaphalfyear));            doublePubAddEntity.setHalfYearXzxkTotal(xzxkSysService.getcuntxzxk(creditSourceUnit, queryMaphalfyear));        } else {            doublePubAddEntity.setHalfYearXzcfTotal("--");            doublePubAddEntity.setHalfYearXzxkTotal("--");        }        if (queryMapyear != null && queryMapyear.size() > 0) {            doublePubAddEntity.setYearXzcfTotal(xzcfSysService.getcuntxzcf(creditSourceUnit, queryMapyear));            doublePubAddEntity.setYearXzxkTotal(xzxkSysService.getcuntxzxk(creditSourceUnit, queryMapyear));        } else {            doublePubAddEntity.setYearXzcfTotal(xzcfSysService.getcuntxzcf(creditSourceUnit, queryMapyear));            doublePubAddEntity.setYearXzxkTotal(xzxkSysService.getcuntxzxk(creditSourceUnit, queryMapyear));        }        Date endTime=new Date();        try {            endTime = dfs.parse(dfs.format(new Date()));        } catch (ParseException e) {            e.printStackTrace();        }        doublePubAddEntity.setUnitId(str);        doublePubAddEntity.setUnitName(creditSourceUnit.getUnitName());        doublePubAddEntity.setUnitype(creditSourceUnit.getUnitType());        doublePubAddEntity.setTime(String.valueOf(endTime.getTime() - stratTime.getTime()));    }}