用一个list集合来保存最后的成绩。计算每个运动员跑完全程的时间
在主线程MainThread宣布比赛结果和充当裁判发号比赛
线程的创建使用的是实现 Runnable接口,Thread的资源不共享,比较麻烦
本来想用hashmap来存放比赛结果和时间的,但是发现hashmap存数据会自己排序,导致结果出错
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.CountDownLatch;
public class MainThread {
private static final int player = 5;
public static void main(String[] args) {
@SuppressWarnings("rawtypes")
List list = new ArrayList();
CountDownLatch latch = new CountDownLatch(player);
CountDownLatch endlatch = new CountDownLatch(player);
CountDownLatch startlatch = new CountDownLatch(1);
for (int i = 0; i < player; i++) {
Thread t = new Thread(new Game((i + 1), endlatch, startlatch, latch, list));
t.start();
}
try {
endlatch.await();
} catch (InterruptedException e) {
e.printStackTrace();
}
startlatch.countDown();
System.out.print("所有运动员已经准备,比赛开始\r\n");
try {
latch.await();
} catch (InterruptedE