문제
속력이 다른 3명의 선수가 달리기하는 문제입니다 이를 해결하는 프로그램의 다음 실행상태에 대해 빈칸을 채우세요
프로그램의 실행순서 및 실행상태
1 public static void main( String[] args ) {
2 for( int lane = 1; lane <= speed.length; lane++ ) {
4 new Player( lane, speed[lane-1] );
P1b public Player( int lane, int speed ) {
P1e }
3 Player player =
5 player.start();
P2b public void run() {
1 1
P21 for( x = 2; x < max; x++ ) {
1옷 1
P22 Thread.sleep( speed );
E001 // speed 밀리초만큼 플레이어 스레드는 대기
2 for( int lane = 1; lane <= speed.length; lane++ ) {
4 new Player( lane, speed[lane-1] );
P1b public Player( int lane, int speed ) {
P1e }
3 Player player =
5 player.start();
P2b public void run() {
1옷 1
2 2
P21 for( x = 2; x < max; x++ ) {
1옷 1
2옷 2
P22 Thread.sleep( speed );
E001 // speed 밀리초만큼 플레이어 스레드는 대기
2 for( int lane = 1; lane <= speed.length; lane++ ) {
4 new Player( lane, speed[lane-1] );
P1b public Player( int lane, int speed ) {
P1e }
3 Player player =
5 player.start();
P2b public void run() {
1옷 1
2옷 2
3 3
P21 for( x = 2; x < max; x++ ) {
1옷 1
2옷 2
3옷 3
P22 Thread.sleep( speed );
E001 // speed 밀리초만큼 플레이어 스레드는 대기
2 for( int lane = 1; lane <= speed.length; lane++ ) {
6 }
E002 // main 스레드는 종료했지만 플레이어 스레드는 대기
E003 // 20 밀리초 후
P23 }
P21 for( x = 2; x < max; x++ ) {
1옷 1
2 옷 2
3옷 3
P22 Thread.sleep( speed );
E001 // speed 밀리초만큼 플레이어 스레드는 대기
E004 // 35 밀리초 후
P23 }
P21 for( x = 2; x < max; x++ ) {
1 옷 1
2 옷 2
3옷 3
P22 Thread.sleep( speed );
E001 // speed 밀리초만큼 플레이어 스레드는 대기
E009 // 80 밀리초 후
P23 }
P21 for( x = 2; x < max; x++ ) {
P2e }
E010 // 플레이어 스레드(lane2) 종료
E013 // 140 밀리초 후
P23 }
P21 for( x = 2; x < max; x++ ) {
P2e }
E014 // 플레이어 스레드(lane1) 종료
E016 // 200 밀리초 후
P23 }
P21 for( x = 2; x < max; x++ ) {
P2e }
E017 // 플레이어 스레드(lane3) 종료
E018 // 모든 스레드 종료 후 프로그램 종료
프로그램 코드
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 // 모든 스레드 종료 후 프로그램 종료
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 ) {
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 }
}