JAVA 입문의 다선정 거북이 토끼 달리기 실례

거북이 토끼 경주: 트랙 1000미터, 토끼 초당 100미터, 거북이 초당 50미터, 토끼 900미터까지 달렸습니다. 거북이는 계속 달렸습니다. 거북이는 결승점까지 달렸고 토끼를 깨웠습니다. 결국 거북이는 경기에서 승리했고 토끼 경기에 실패했습니다.(시뮬레이션 경기 과정)
Rabit.java
package test3;

public class Rabit  extends  Thread{
     
    private int dist=100;

    public Rabit(int dist) {
     
        this.dist = dist;
    }

    @Override
    public void run() {
     
        for (int i = 0; i <=900 ; i+=dist) {
     
            if (i==800){
     
                System.out.println("     ");
                this.suspend();

            }
            try {
     
                Thread.sleep(1000);
            } catch (InterruptedException e) {
     
                e.printStackTrace();
            }
            System.out.println(this.getName()+"    "+(i+dist)+" ");
        }
    }
}

WUgui .java
package test3;

public class WUgui  extends  Thread{
     

    //  50
    private int dist=50;
    private  Rabit rabit;
    public WUgui(String name, int dist,Rabit rabit) {
     
        super(name);
        this.dist = dist;
        this.rabit=rabit;
    }

    @Override
    public void run() {
     
        for (int i = 0; i <950 ; i+=this.dist) {
     
            System.out.println(this.getName()+"    "+(i+this.dist)+" ");
            try {
     
                Thread.sleep(1000);
            } catch (InterruptedException e) {
     
                e.printStackTrace();
            }
        }
        System.out.println(this.getName()+"                 ");
        this.rabit.resume();
    }
}

Test.java
package test3;

public class Test {
     
    public static void main(String[] args) {
     
        Rabit rabit = new Rabit(100);
        rabit.setName("  ");
        WUgui wUgui = new WUgui("  ",50,rabit);
      //  wUgui.setName("  ");

        rabit.start();
        wUgui.start();
    }
}

좋은 웹페이지 즐겨찾기