스레드(Thread) - 3. Thread의 생성 및 실행방법

Ⅲ. Thread의 생성 및 실행방법

1. Thread 생성방법 및 실행방법

 - 생성방법1 : Thread class를 상속받아 run() 메소드 재정의

 - 생성방법2 : Runnable interface 구현 (추상메소드(run()) 구현) → Thread 생성자로 Runnable 객체 전달

 - 실행방법 : Thread 객체내의 start() 메소드 호출

// Example1
package sample;

// Runnable 인터페이스를 상속해 클래스를 만들면, 멀티 스레드 동작 가능
class Task1 implements Runnable {	// Runnable는 인터페이스
	public void run() {		// run() : 실행한다
		// 여기에 스레드가 처리할 작업을 넣어주면 됨
	}
}

// Thread 클래스를 상속해 만들어도 멀티 스레드 가능
class Task2 extends Thread {
	public void run() {
		
	}
}

// 사실은 main도 스레드였음
public class Main {
	public static void main(String[] args) {
		// currentThread()는 작업중인 스레드 반환
		Thread a = Thread.currentThread();
		String name = a.getName();		// 스레드의 이름 반환
		System.out.println(name);		// main
	}
}
// Example2
package sample;

class Task implements Runnable {
	public void run() {
		int n1 = 10, n2 = 20;
		String name = Thread.currentThread().getName();
		System.out.println(name + ":" + n1 + n2);	// Thread-0:1020
	}
}
public class Main {
	public static void main(String[] args) {
		Task a = new Task();	// 스레드에게 시킬 작업 만들기
		Thread t = new Thread(a);
		t.start();		// 스레드가 작업을 처리하기 시작
		System.out.println("End " + Thread.currentThread().getName());	// End main
	}
}