package runnable;
import java.util.ArrayList;
public class Test implements Runnable {
int seq;
public Test(int seq) {
this.seq = seq;
}
public void run() {
System.out.println(this.seq + "thread run!!");
try {
Thread.sleep(1000);
} catch (Exception e) {
e.printStackTrace();
}
System.out.println(this.seq + "thread stop!!");
}
public static void main(String[] args) {
ArrayList<Thread> thread = new ArrayList<Thread>();
for (int i = 0; i < 10; i++) {
Thread test = new Thread(new Test(i));
test.start();
thread.add(test);
}
for (int i = 0; i < thread.size(); i++) {
Thread t = thread.get(i);
try {
t.join();
} catch (Exception e) {
e.printStackTrace();
}
}
System.out.println("main stop");
}
}
Thread를 extends 하던 것에서 Runnable을 implements 하도록 변경되었다. (Runnable 인터페이스는 run 메소드를 구현하도록 강제한다.) 그리고 Thread 를 생성하는 부분을 다음과 같이 변경했다.
Thread의 생성자로 Runnable 인터페이스를 구현한 객체를 넘길 수 있는데 이 방법을 사용한 것이다. 이렇게 변경된 코드는 이 전에 만들었던 예제와 완전히 동일하게 동작한다. 다만 인터페이스를 이용했으니 상속 및 기타 등등에서 좀 더 유연한 프로그램으로 발전했다고 볼 수 있겠다.
'JAVA > 자바' 카테고리의 다른 글
jsoup 서원대학교 연혁페이지 파싱 (0) | 2015.05.08 |
---|---|
자바 URL주소로 이미지 저장 (0) | 2015.05.08 |
자바 쓰레드 Thread (0) | 2015.03.19 |
자바 쓰레드 기초 (0) | 2015.03.19 |
자바 클라이언트 기초소스 (0) | 2015.03.19 |