代码疑问,有高手看见可以解答下:
//这里有个疑问,相同的线程,一个W1对象,能确定的时这个过程没问题,// // 但是怎么确定那条线程时乌龟,那条线程是兔子呢
package com.thread;
//1龟兔赛跑定义一个赛跑类,两个接口对象采用双进程 使用语法implemnts Runnable
//2重写Runner接口的run方法 快捷键alt+insert--->mother->run()
public class Race02 implements Runnable{
//调用main方法,开启接口进程
public static void main(String[] args) {
//new 个对象
Race02 w1=new Race02();
//开启进程接口
new Thread(w1,"兔子") .start() ;
new Thread(w1,"乌龟") .start() ;
//这里有个疑问,相同的线程,一个W1对象,能确定的时这个过程没问题,//
// 但是怎么确定那条线程时乌龟,那条线程是兔子呢
}
//内部定义一个获胜者
private String winner;
//在run方法中实现具体的工作,跑结束了打印谁获胜了
//需要引用一个自己的方法,一个比赛规则
@Override
public void run() {
for (int i = 0; i <= 200; i++) {
Boolean flag=gameover(i);
if(flag){
System.out.println(Thread.currentThread().getName()+"-->跑了"+i+"步");
break;
}
System.out.println(Thread.currentThread().getName()+"-->跑了"+i+"步");
}
}
//写一个自己的比赛规则()方法()
//传进去一个跑的步骤,返回一个结果
private boolean gameover(int steps){
if(winner!=null){
return true;
}else{
if(steps==200){
//返回先结束进程的名字,打印获胜者
winner=Thread.currentThread().getName();
System.out.println("winner is "+winner);
return true;
}
}
return false;
}
}
运行结果: