JAVA多线程模拟龟兔赛跑!
class Rabbit extends Thread{
Tortoise tor;
int Journey;
int RabbitSpeed;
public Rabbit(int rs,int j,Tortoise tortoise)
{
Journey = j;
RabbitSpeed = rs;
tor = tortoise;
}
synchronized public void run()
{
{
try {
wait(1000); /*无论哪个线程选启动都立即进入等待,无论哪个线程跳出等待都唤醒所有线程*/
} catch (InterruptedException e1) {
e1.printStackTrace();
}
notifyAll();
}
System.out.println("----------兔子起跑了!---------");
while(Journey >= 0)
{
System.out.println("兔子在跑");
Journey = Journey-RabbitSpeed;
if (Journey%7 == 0)/*何时兔子开始睡觉*/
{
try {
System.out.println("兔子在睡觉-_-~~~~!");
sleep(20);/*设置兔子的睡觉时间*/
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
if(Journey < 0)
{
System.out.println("兔子到了终点");
}
}
}
class Tortoise extends Thread{
int Journey;
int TortoiseSpeed;
Rabbit rab;
public Tortoise(int ts,int j ,Rabbit rabbit)
{
Journey = j;
TortoiseSpeed = ts;
rab = rabbit;
}
synchronized public void run()
{
{
try {
wait(1000);/*无论哪个线程选启动都立即进入等待,无论哪个线程跳出等待都唤醒所有线程*/
} catch (InterruptedException e) {
e.printStackTrace();
}
notifyAll();
}
System.out.println("----------龟龟起跑了!---------");
while(Journey >= 0)
{
System.out.println("龟龟在跑");
Journey=Journey-TortoiseSpeed;
}
if(Journey < 0)
{
System.out.println("龟龟到了终点");
}
}
}
public class TortoiseAndRabbit extends Thread{
int Journey ;
int r;
int t;
Rabbit Rab;
Tortoise Tor;
public TortoiseAndRabbit(int rs,int ts,int j)
{
Journey =j;
r = rs;
t = ts;
}
public void run()
{
/*设计初期把每个线程对象传给对方,但在这段程序中并没有使用可以去除*/
Rab = new Rabbit(r,Journey,Tor);
Tor = new Tortoise(t,Journey,Rab);
Rab.setPriority(Thread.MAX_PRIORITY);
Tor.setPriority(Thread.MAX_PRIORITY);
Rab.start();
Tor.start();
}
public static void main(String[] args) {
/*参数一为兔子的速度,参数二是龟龟的速度,参数三是路程*/
new TortoiseAndRabbit(6,2,100).start();
}
}
本文来源:https://www.wddqw.com/doc/5a394c49c850ad02de80419e.html
正在阅读:
JAVA多线程模拟龟兔赛跑01-01
书信格式的结尾怎么写01-01
气组词一年级01-01
我心目中的好老师01-01
我国金融机构存在的问题01-01
英语职业名词01-01
“讲文明树新风”公益广告宣传口号01-01
家乡的冬天01-01