Extends Thread
기본적인 방법
Thread 객체를 상속받아 Run메서드를 오버라이딩 하여 사용
상속받은 객체 인스턴스를 생성하고 start 메서드를 실행하면 Run 메서드의 내용이 실행됨
Thread를 상속 받아야 하기 때문에 다른 클래스를 상속 받아서 사용할 수 없음
public class ExThread1 extends Thread{
@Override
public void run() {
try {
Thread.sleep(1000);
System.out.println(Thread.currentThread().getName());
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
public class Main {
public static void main(String args[])
{
ExThread1 ex1 = new ExThread1();
ex1.start();
System.out.println(Thread.currentThread().getName());
//Ex1 의 쓰레드 이름을 나중에 출력하고 현재 메인 쓰레드의 이름을 먼저 출력
}
}
Runnable 인터페이스 implements
Runnable을 구현한 객체를 생성
Thread 객체를 따로 생성하고 생성자를 통해 Runnable 객체를 전달
Thread 객체를 start 하여 쓰레드 동작
다른 클래스를 상속 가능
public class ExThread2 implements Runnable{
@Override
public void run() {
try {
Thread.sleep(1000);
System.out.println(Thread.currentThread().getName());
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
public class Main {
public static void main(String args[])
{
ExThread2 ex2 = new ExThread2();
Thread thread = new Thread(ex2);
thread.start();
System.out.println(Thread.currentThread().getName());
//자식 쓰레드 이름을 나중에 출력하고 현재 메인 쓰레드의 이름을 먼저 출력
}
}
'Programing Language > JAVA' 카테고리의 다른 글
JAVA Concurrent 프로그래밍 (Completable Future) (0) | 2022.11.06 |
---|---|
Collection과 람다식을 활용한 데이터 처리 정리 - 1 (0) | 2022.05.12 |
Enumeration과 Iterator (0) | 2021.02.25 |
JAVA Exception 처리 (0) | 2021.02.23 |
인터페이스와 디폴트, 스태틱 메서드 (0) | 2021.02.22 |