본문 바로가기
프로그래밍/자바의 정석 기초편 코드 분석

자바의 정석 기초편 코드 분석 129(예제 13-5)

by 리드민 2023. 9. 25.
반응형

[ ] 자바의 정석 기초편 카테고리
chapter 13 쓰레드
chapter 13-5 쓰레드의 I/O블락킹(blocking) 예제2

예제 13-5

[ ] 코드 분석
1. 원본 코드

import javax.swing.JOptionPane;

class Ex13_5 {
	public static void main(String[] args) throws Exception {
    	ThreadEx5_1 th1 = new ThreadEx5_1();
        th1.start();
        
        String input = JOptionPane.showInputDialog("아무 값이나 입력하세요.");
        System.out.println("입력하신 값은 " + input + "입니다.");
   }
}

class ThreadEx5_1 extends Thread {
	public void run() {
    	for(int i=10; i>0; i--) {
        	System.out.println(i);
            try {
            	sleep(1000);
            } catch(Exception e ) {}
        }
    } // run()
}


2. 해석본

import javax.swing.JOptionPane;
// javax.swing.JOptionPane 클래스 import

class Ex13_5 {
// Ex13_5 클래스 선언
	public static void main(String[] args) throws Exception {
    // 접근제어자 public으로 메모리에 상주하게 리턴값이 없이 main 메서드 선언
    	ThreadEx5_1 th1 = new ThreadEx5_1();
        // ThreadEx5_1 클래스의 인스턴스 th1 ThreadEx5_1() 생성자 선언
        th1.start();
        // th1.start() 메서드 선언
        
        String input = JOptionPane.showInputDialog("아무 값이나 입력하세요.");
        // String형 변수 input 선언
        System.out.println("입력하신 값은 " + input + "입니다.");
        // "입력하신 값은 " + input + "입니다." 선언
   }
}

class ThreadEx5_1 extends Thread {
// Thread 클래스 상속 ThreadEx5_1 클래스 선언
	public void run() {
    // 접근제어자 public으로 리턴값이 없이 run() 메서드 선언
    	for(int i=10; i>0; i--) {
        // for문 선언
        	System.out.println(i);
            // i 출력
            
            // try-catch 선언
			try {
            	sleep(1000);
            } catch(Exception e ) {}
        }
    } // run()
}
반응형