/**
* 运动员赛跑
* @author wyh
*
*/
public class ThreadDemo2 {
public static void main(String[] args) {
int threadCount = 10;//运动员数量
final CountDownLatch latch = new CountDownLatch(threadCount);
for (int i = 0; i < threadCount; i++) {//运动员准备好
Thread t = new Thread(new Man(latch, "A" + i));
t.start();
}
try {//所有运动员都准备好后开始比赛
latch.await();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
class Man implements Runnable {
private String name;
private CountDownLatch latch;
public Man(CountDownLatch latch, String name) {
super();
this.latch = latch;
this.name = name;
}
@Override
public void run() {
System.out.println("线程" + this.name + "开始出发");
try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("线程" + this.name + "已到达终点");
latch.countDown();//每个运动员准备好数量减1
}
}
* 运动员赛跑
* @author wyh
*
*/
public class ThreadDemo2 {
public static void main(String[] args) {
int threadCount = 10;//运动员数量
final CountDownLatch latch = new CountDownLatch(threadCount);
for (int i = 0; i < threadCount; i++) {//运动员准备好
Thread t = new Thread(new Man(latch, "A" + i));
t.start();
}
try {//所有运动员都准备好后开始比赛
latch.await();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
class Man implements Runnable {
private String name;
private CountDownLatch latch;
public Man(CountDownLatch latch, String name) {
super();
this.latch = latch;
this.name = name;
}
@Override
public void run() {
System.out.println("线程" + this.name + "开始出发");
try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("线程" + this.name + "已到达终点");
latch.countDown();//每个运动员准备好数量减1
}
}