【发布时间】:2018-09-07 07:08:26
【问题描述】:
如果每个任务(线程)有多个阶段。那么如何保证所有的任务都执行stage 1,然后执行stage 2,以此类推。例如如何修改下面的代码,使我的输出是: Task1 的第 1 阶段, Task2 的第 1 阶段, Task3 的第 1 阶段, Task1 的第 2 阶段, Task2 的第 2 阶段, Task3 的第 2 阶段, 等等……
public class Task implements Runnable{
public String name;
static Random random = new Random();
Task(String name){
this.name=name;
}
public static void main(String args[]) {
ExecutorService ex = Executors.newFixedThreadPool(6);
ex.submit(new Task("Task 1"));
ex.submit(new Task("Task 2"));
ex.submit(new Task("Task 3"));
}
public static void getRandomsleep() {
try {
Thread.sleep(random.nextInt(5000));
} catch (InterruptedException e) {
// ...
} }
public void run() {
System.out.println("thread name" + this.name);
getRandomsleep();
System.out.println("stage 1 of " + this.name);
getRandomsleep();
System.out.println("stage 2 of " + this.name);
getRandomsleep();
}
}
【问题讨论】:
标签: java multithreading