Java场景编程题:
三个运动员一起赛跑,裁判员等待3秒打响发令枪,运动员同时开始赛跑,使用sleep随机数来模拟赛跑过程,等待所有运动员都抵达终点后统计运动员排名。
解析:考察JUC工具类的使用,题目拆解如下:
- 三个运动员一起赛跑可使用多线程模拟
- 等待裁判员发令同时开始赛跑可以使用CountDownLatch countDown() 从1减少至0时,唤醒线程同时开始执行任务
- sleep随机数使用Random类的nextInt函数
- 等待所有运动员抵达终点使用CountDownLatch count = 线程总线,在每个线程中 countDown() 自减1,减至0代表所有线程运行完成
- 统计运动员排名使用冒泡排序法对运动员成绩进行排名