Laguage/Java

쓰레드의 구현

sandbackend 2022. 10. 25. 10:54

작업 쓰레드 생성과 실행

 

2가지 방법

1. Thread 클래스를 상속

class MyThread extends Thread {
    public void run()  {   // Thread클래스의 run()을 오버로딩
        /* 작업내용 */
    }
MyTread t1 = new MyThread();  // 쓰레드의 생성
t1.start();  // 쓰레드의 실행

 

2. Runnable 인터페이스를 구현  <- batter : 자바는 단일 상속이기에

다른 클래스를 상속받을수가 있어서

class MyThread2 implements Runnable {
    public void run() {    // Runnable 인터페이스 추상메서드 run()을 구현
        /* 작업내용 */
    }
}
Runable r = new MyThred2();
Thread t2 = new Thread(r);    // Thread(Runnable r)
//  Thread t2 = new Thread(new MyThread2());
t2.start;

run이란 메서드의 구현체를 외부에서 메개변수로 받는다. 외부에서 제공한 run을 쓰레드 메서드가 호출한다.