속력이 다른 3명의 선수가 달리기하는 문제입니다 이를 해결하는 다음 프로그램을 해석하세요
1 옷 1 2 옷 2 3 옷 3
1 옷 1 2 옷 2 3 옷 3
1 옷1 2 옷2 3 옷3
프로그램 시작
속력이 다른 3명의 선수가 각자 달리기 출발
프로그램 종료
달리기 선수
달리기
선수의 위치 이동
이때 지정 속력으로 이동
E001 // speed 밀리초만큼 플레이어 스레드는 대기
E002 // main 스레드는 종료했지만 플레이어 스레드는 대기
E003 // 20 밀리초 후
E004 // 35 밀리초 후
E005 // 40 밀리초 후
E006 // 50 밀리초 후
E007 // 60 밀리초 후
E008 // 70 밀리초 후
E009 // 80 밀리초 후
E010 // 플레이어 스레드(lane2) 종료
E011 // 100 밀리초 후
E012 // 105 밀리초 후
E013 // 140 밀리초 후
E014 // 플레이어 스레드(lane1) 종료
E015 // 150 밀리초 후
E016 // 200 밀리초 후
E017 // 플레이어 스레드(lane3) 종료
E018 // 모든 스레드 종료 후 프로그램 종료
// 파일명 : ./Chapter15/Race.java
// 달리기 선수
class Player extends Thread
{
private int x, max, lane, speed;
P1b public Player( int lane, int speed ) {
this.x = 1;
this.max = 6;
this.lane = lane;
this.speed = speed;
P1e }
// 달리기
P2b public void run() {
try {
System.out.print( "\033[" + lane + ";1f" + lane );
System.out.print( "\033[" + lane + ";"+(max+2)+"f" + lane );
P21 for( x = 2; x < max; x++ ) {
// 선수의 위치 이동
System.out.print( "\033[" + lane + ";"+ x +"f 옷" );
System.out.print( "\033[4;40f" );
// 이때 지정 속력으로 이동
P22 Thread.sleep( speed );
P23 }
} catch( Exception e ) {
}
P2e }
}
public class Race
{
// 프로그램 시작
1 public static void main( String[] args ) {
// 속력이 다른 3명의 선수가 각자 달리기 출발
int[] speed = { 35, 20, 50 };
2 for( int lane = 1; lane <= speed.length; lane++ ) {
3 Player player =
4 new Player( lane, speed[lane-1] );
5 player.start();
}
6 }
// 프로그램 종료
}
※ 실행순서 및 메모리상태는 A키(이전) 및 D키(다음)를 눌러도 확인할 수 있습니다