java如何在多线程执行完后才执行其他任务
for(inti=0;i<fileList.size();i++){finalStringsrcFile=srcDir+"/"+fileList.get(i).getNa...
for(int i=0;i<fileList.size();i++){
final String srcFile=srcDir+"/"+fileList.get(i).getName();
final String dstFile=dstDir+"/"+fileList.get(i).getName();
Thread thread = new Thread(new Runnable() {
public void run() {
copyTimer(srcFile,dstFile);
}
});
}
//开始执行解压操作
List<File> descFileList = scanFiles(dstDir);
System.out.println("++++++" + descFileList);
unZipFile(descFileList, dstDir, unZip);
如上代码显示,让他在for循环之后才执行下面的unZipFile方法 展开
final String srcFile=srcDir+"/"+fileList.get(i).getName();
final String dstFile=dstDir+"/"+fileList.get(i).getName();
Thread thread = new Thread(new Runnable() {
public void run() {
copyTimer(srcFile,dstFile);
}
});
}
//开始执行解压操作
List<File> descFileList = scanFiles(dstDir);
System.out.println("++++++" + descFileList);
unZipFile(descFileList, dstDir, unZip);
如上代码显示,让他在for循环之后才执行下面的unZipFile方法 展开
4个回答
展开全部
java.util.concurrent.CountDownLatch 这个类可以实现你所要的功能
例如:CountDownLatch latch = new CountDownLatch(5) //声明计数器为5个
Thread t = new Thread() {
public void run() {
try {
//TODO 你的应用
} catch (Exception e) {
//TODO 异常处理
}
finally {
latch.countDown(); //这句是关键
System.out.println("ok"); //5个线程都跑完后输出
}
}
};
t.start();
然后让以上操作循环五次(就是说同时开5个线程),那么这个"ok"就会在等到这5个线程都ok后才会被输出一次。
例如:CountDownLatch latch = new CountDownLatch(5) //声明计数器为5个
Thread t = new Thread() {
public void run() {
try {
//TODO 你的应用
} catch (Exception e) {
//TODO 异常处理
}
finally {
latch.countDown(); //这句是关键
System.out.println("ok"); //5个线程都跑完后输出
}
}
};
t.start();
然后让以上操作循环五次(就是说同时开5个线程),那么这个"ok"就会在等到这5个线程都ok后才会被输出一次。
展开全部
给点提示
可以设置一个map对象
key为fileName,value 为boolean 结束了就设置为true,没结束就设置为false
然后while循环
直到map中所有的value都为true时才break;
执行你所说的语句
可以设置一个map对象
key为fileName,value 为boolean 结束了就设置为true,没结束就设置为false
然后while循环
直到map中所有的value都为true时才break;
执行你所说的语句
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
通过标识符判断循环是否结束,然后再执行操作
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
设置一个计数器,每个线程执行完后计数器加一然后查看计数器是否已满(任务都完成),没有的话就阻塞,是的话就唤醒其他所有线程,大家一起来执行下一次任务。要注意公用的计数器的线程安全!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询