2 g belief g_belief 于 2017.09.05 23:08 提问

Java多线程,赛跑问题

java初学者,做一个三个学生线程赛跑的例子,当赛跑完成时,打印出比赛成绩,然后线程结束,不知道怎么让他们在某一刻停止,打印出不同成绩

4个回答

Naide_S
Naide_S   2017.09.06 11:38
已采纳

你需要一个学生类和一个回调方法 给出总距离 while()判断 (总距离大于零 就继续跑 小于零就停止其他两个线程) 让三个学生都继承这个类 再写一个管理线程类 实现这个回调的方法 给一个构造方法 学生类为参数
在回调方法中停止线程 在三个学生线程中 不断给总距离赋值 当其中一个为零时 调用接口 停止其他线程 如果你需要成绩 可以随便给一个值 第一个停止的为第一名 自动累加即可 这是我的思路

oyljerry
oyljerry   Ds   Rxr 2017.09.06 09:35

直接等待三个线程结束就可以了,join

xiaoming120915
xiaoming120915   2017.09.06 09:51

图片说明

图片说明
刚写了一个,你测试一下

MrZhangXL
MrZhangXL   2017.09.06 11:52

CountDownLatch主线程阻塞,子线程打印耗费时间,三个子线程结束后主线程结束

Csdn user default icon
上传中...
上传图片
插入图片