必须编写一个线程竞赛程序,其中ThreadRace类将创建10个ThreadRaceCompetitor的实例。然后它将全部运行。将有一个名为ThreadRaceContext的结果类,该类将保留谁在哪个位置完成的记分卡。
当ThreadRaceCompetitor完成比赛时,它将必须通知ThreadRaceContext他的比赛编号(一个ID),并且已经完成。 ThreadRaceContext会将最终排名列出到控制台中
答案 0 :(得分:0)
这不使用单独的类,但在功能上是相同的。
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == foo) {
// do something
}
}
但没有延迟,它们似乎都在同一时间结束
0 1559767161100
1 1559767161100
2 1559767161100
3 1559767161100
4 1559767161100
5 1559767161100
6 1559767161100
7 1559767161100
8 1559767161100
9 1559767161100
即使执行100次,它们也会同时完成,甚至在时间戳之前做一些简单的数学运算。为每个线程添加延迟确实会导致时间不同。我认为电脑太快了,以致毫秒内不会有差异。
* edit:要添加延迟,我将public static void main(String[] args) throws InterruptedException {
Map<Integer, Date> results = new HashMap<>();
IntStream.range(0,10).parallel().forEach(i->results.put(i,new Date()));
Thread.sleep(30);
results.forEach((key, value) -> System.out.println(key + " " + value.getTime()));
}
声明为main之前的静态外部,然后
results
并将private static void doStuff(int i) {
try {
Thread.sleep(2);
} catch (InterruptedException e) {
e.printStackTrace();
}
results.put(i,new Date());
}
更改为IntStream.range(0,10).parallel().forEach(i->results.put(i,new Date()));