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

3 篇文章 0 订阅
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()));
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值