쓰레드를 알려면 예제를 보는것이 쉽다.
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 |