java

Java Thread와 Runnable

rockettttman 2020. 12. 1. 21:24

Thread 클래스와 Runnable 인터페이스

Java에선 Thread를 구현하는 방법으로는 Thread 클래스와 Runnable 인터페이스가 있다. Thread 클래스를 상속받게 되면 다른 클래스를 상속받을 수 없으나 Runnable 인터페이스를 구현받아 사용하게 되면 다른 클래스를 상속받아 재사용성을 높일 수 있다.

package thread;

public class ThreadTest extends Thread{
	
	int seq;
	
    public ThreadTest(int seq) {
        this.seq = seq;
    }

	public static void main(String[] args) {
  /*
    aa메소드 실행 시 -> (i 시작 -> i 종료) 반복 -> main end
    thread start 시 -> 
      thread i : 0 started
      thread i : 1 started
      thread i : 2 started
      thread i : 3 started
      main end
      thread i : 4 started
      end : 0
      end : 1
      end : 2
      end : 3
      end : 4
  */
		for (int i = 0; i < 5; i++) {
//			aa(i);
			Thread t = new ThreadTest(i);
			t.start();
		}
		System.out.println("main end");
	}
	
	public void run() {
		System.out.println("thread i : " + seq + " started");
		try {
			Thread.sleep(1000);
		} catch (InterruptedException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		System.out.println("end : " + seq);
	}
	
//	public static void aa(int i) {
//		try {
//			System.out.println("int i : " + i + " started");
//			Thread.sleep(1000);
//		} catch (InterruptedException e) {
//			// TODO Auto-generated catch block
//			e.printStackTrace();
//		}
//		System.out.println("end " + i);
//	}
}