java

쓰레드(Thread)

appmaster 2019. 7. 11. 13:45

쓰레드를 알려면 예제를 보는것이 쉽다.

public class Test extends Thread {
    public void run() {
        System.out.println("thread run.");
    }

    public static void main(String[] args) {
        Test test = new Test();
        test.start();
    }
}

Test클래스가 Thread 클래스를 상속했다. Thread클래스의 run 메소드를 구현하면 위 예제와 같이 test.start()실행 시 test객체의 run 메소드가 수행이 된다. (Thread 클래스를 extends 했기 때문에 start 메소드 실행 시 run 메소드가 수행되는 것이다. Thread클래스는 start실행 시 run 메소드가 수행되도록 내부적으로 코딩되어 있다.)

 

위 예제를 실행하면 "Thread run."이라는 문장이 출력이 될 것이다. 

 

 

 

쓰레드의 동작을 확인할 수 있는 방법은

public class Test extends Thread {
    int seq;
    public Test(int seq) {
        this.seq = seq;
    }
    public void run() {
        System.out.println(this.seq+" thread start.");
        try {
            Thread.sleep(1000);
        }catch(Exception e) {

        }
        System.out.println(this.seq+" thread end.");
    }

    public static void main(String[] args) {
        for(int i=0; i<10; i++) {
            Thread t = new Test(i);
            t.start();
        }
        System.out.println("main end.");
    }
}

이렇게 할 수 있는데 총 10개의 쓰레드를 실행시키는 예제이다. 어떤 쓰레드인지 확인하기 위해서 쓰레드마다 생성자에 순번을 부여했다. 그리고 쓰레드 메소드(run) 수행 시 시작과 종료를 출력하게 했고 시작과 종료 사이에 1초의 간격이 생기도록 (Thread.sleep(1000))작성했다.

 

그리고 main메소드 종료시 "main.end"를 출력하도록 했다.

'java' 카테고리의 다른 글

예외 처리(throw, throws)  (0) 2019.07.11
예외처리 추가설명  (0) 2019.07.11
예외 처리 (try/catch)  (0) 2019.04.30
오버로딩 정리해주세요  (0) 2019.04.23
Wrapper 클래스  (0) 2019.04.22