JAVA 프로그래밍

문제

속력이 다른 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키(다음)를 눌러도 확인할 수 있습니다