java多线程经典案例:龟兔赛跑
程序员文章站
2022-05-02 10:09:54
...
1. 案例题目描述:编写龟兔赛跑多线程程序,设赛跑长度为30米
兔子的速度是10米每秒,兔子每跑完10米休眠的时间10秒
乌龟的速度是1米每秒,乌龟每跑完10米的休眠时间是1秒
2. 案例完成思路要求:
1)乌龟定义一个线程,兔子定义一个线程
2)两个线程同时开启
3)提示:可以使用Thread.sleep(毫秒数)来模拟耗时
package com.zjx.thread;
/**
1. 案例题目描述:编写龟兔赛跑多线程程序,设赛跑长度为30米
兔子的速度是10米每秒,兔子每跑完10米休眠的时间10秒
乌龟的速度是1米每秒,乌龟每跑完10米的休眠时间是1秒
2. 案例完成思路要求:
1)乌龟定义一个线程,兔子定义一个线程
2)两个线程同时开启
3)提示:可以使用Thread.sleep(毫秒数)来模拟耗时
* 龟兔赛跑
* @author zjx
*
*/
public class TestTurAndRabbit{
public static void main(String[] args) {
//创建乌龟和兔子线程
Tur tur = new Tur("小乌龟");
Rabbit rabbit = new Rabbit("小白兔");
//开始赛跑
tur.start();
rabbit.start();
}
}
//乌龟
class Tur extends Thread{
public Tur(String name) {
super(name);//父类构造方法,设置名字
}
@Override
public void run() {
for(int i = 1;i <= 30; i ++){ //i 代表 米
try {
Thread.sleep(1000);//休息1s
} catch (InterruptedException e) {
e.printStackTrace();
}
//每次跑了一米都打印
System.out.println(Thread.currentThread().getName()+"跑了"+i+"米");
if (i % 10 == 0) {
//跑完10米
try {
Thread.sleep(1000); //乌龟跑完十米 休息一秒
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
}
//兔子
class Rabbit extends Thread{
public Rabbit(String name) {
super(name);//父类构造方法,设置名字
}
@Override
public void run() {
for(int i = 1;i <= 30; i ++){ //i 代表 米
//兔子10米 每秒 1米是 0.1秒
try {
Thread.sleep(100);//休息0.1s
} catch (InterruptedException e) {
e.printStackTrace();
}
//每次跑了一米都打印
System.out.println(Thread.currentThread().getName()+"跑了"+i+"米");
if (i % 10 == 0) {
//跑完10米
try {
Thread.sleep(10000); //兔子每跑完10米休眠的时间10秒
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
}
你要是想和童话故事一样= = 你让兔子多睡点就好!!!
上一篇: java多线程实现龟兔赛跑
下一篇: 今生惟爱你的冷