用java如何实现10个线程 一起完成15个任务(当一个线程完成了一个任务后 在给它另一个任务) ?
2个回答
展开全部
将15个任务放在一个List中,每个线程都循环从任务List中取得一个任务,然后删除任务List中的这个任务,这个任务完成后继续循环。任务List为空时,表示所有任务都完成,是所有线程都结束还是进行其他操作,就看你需要了。
更多追问追答
追问
能不能 用代码写出来啊?
追答
简单写了个例子
package thread_work;
import java.util.ArrayList;
import java.util.List;
public class WorkThreadSample {
public static void main(String args[]) {
// 任务List: 15个任务
List workList = new ArrayList();
for (int i = 0; i workList = null;
public WorkThread(List workList, String name) {
super();
this.name = name;
this.workList = workList;
}
public void run() {
System.out.println(name + " start working...");
while (true) {
// 同步锁,放在循环里是不让该线程一直占用workList
synchronized (workList) {
// 任务List中有任务时进行循环
if (workList != null && !workList.isEmpty()) {
// 取得一个任务,并从任务List中删除该任务
Work work = workList.remove(0);
// 执行任务,例:
work.work(name);
} else {
// 所有任务都完成
break;
}
}
}
}
}
// 任务类
class Work {
// 任务名
private String name = null;
public Work(String name) {
this.name = name;
}
// 任务内容
public void work(String worker) {
System.out.println(worker + ":" + name + " is Done!");
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询