龟兔赛跑相关问题
兔子类:public class Rabbit extends Thread
{
String threadName;
public Rabbit(String threadName){
this.threadName=threadName;
}
public void run(){
int length=0;
while(length<100){
try{
Thread.sleep(1000);//stop 1 sec everytime
}
catch(InterruptedException e){
e.printStackTrace();
}
length+=10;
System.out.println(this.threadName+"has run :"+length+"miles");
}
System.out.println(Thread.currentThread().getName()+"reached!!");
}
}
乌龟类:
public class Tortoise implements Runnable
{ String threadName;
public Tortoise(String threadName){
this.threadName=threadName;
}
public void run()
{
for(int length=0;length<100;length+=10){
System.out.println(this.threadName+"has run :"+length+"miles");
}
System.out.println(Thread.currentThread().getName()+"reached!!");
}
}
主方法所在的乌龟兔子类:
public class RabbitTortoise
{
public static void main(String[] args)
{ Tortoise tortoise = new Tortoise(tortoise);
Rabbit rabbit = new Rabbit(rabbit);
tortoise.setPriority(3);//优先级3
rabbit.setPriority(1);//优先级1
Thread thread1 = new Thread(tortoise);
Thread thread2 = new Thread(rabbit);
thread1.start();
thread2.start();
}
}
运行结果RabbitTortoise 三处出错;
C:\Documents and Settings\KevinGarnett\桌面\Java\7\RabbitTortoise.java:4: 找不到符号
符号: 构造函数 Tortoise(Tortoise)
位置: 类 Tortoise
{ Tortoise tortoise = new Tortoise(tortoise);
^
C:\Documents and Settings\KevinGarnett\桌面\Java\7\RabbitTortoise.java:5: 找不到符号
符号: 构造函数 Rabbit(Rabbit)
位置: 类 Rabbit
Rabbit rabbit = new Rabbit(rabbit);
^
C:\Documents and Settings\KevinGarnett\桌面\Java\7\RabbitTortoise.java:6: 找不到符号
符号: 方?setPriority(int)
位置: 类 Tortoise
tortoise.setPriority(3);//优先级3
应该如何改动?
搜索更多相关的解决方案:
龟兔赛跑
----------------解决方案--------------------------------------------------------
Tortoise tortoise = new Tortoise(tortoise);
Rabbit rabbit = new Rabbit(rabbit);
既然类中的构造方法是有参的并且是String类型的.
传参数只能传此类型的.
----------------解决方案--------------------------------------------------------
把乌龟类 的implements Runnable改成extends Thread
然后把主类中的
Tortoise tortoise = new Tortoise(tortoise);
Rabbit rabbit = new Rabbit(rabbit);
改成 Tortoise tortoise = new Tortoise(“tortoise”);
Rabbit rabbit = new Rabbit(“rabbit”);
----------------解决方案--------------------------------------------------------
回复 2楼 gameohyes
给龟设置优先级,让它赢该怎么改? ----------------解决方案--------------------------------------------------------
回复 3楼 dadongzicool
给龟设置优先级,让它赢该怎么改?----------------解决方案--------------------------------------------------------
thread1.setPriority(Thread.NORM_PRIORITY + 3);//在正常的优先级的基础上,使线程thread1的优先级提高
----------------解决方案--------------------------------------------------------
回复 6楼 gameohyes
线程优先级设置后对结果没有影响。在主方法类里面设置优先级,那么子类里面应该如何编写? ----------------解决方案--------------------------------------------------------
JVM以及操作系统会优先处理优先级别高的线程,但不代表这些线程一定会先完成。设定优先级只能建议系统更快的处理,而不能强制。
----------------解决方案--------------------------------------------------------