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
블로그 이미지

왕왕왕왕

,