T.I.L #31 Runnable

개발자지망생·2023년 11월 13일
0

Runnable이란?

Runnable 인터페이스는 자바에서 쓰레드를 생성하기 위한 가장 기본적인 인터페이스이다. 이 인터페이스에는 단 하나의메소드인 run()이 정의되어 있다. 이 run() 메소드는 쓰레드가 실행할 작업을 정의한다.

Runnable을 사용하는 이유

자바에서 쓰레드를 다루는 전통적인 방법 중 하나는 Thread 클래스를 상속받는 것이다. 하지만 자바는 단일 상속만을 지원하기 때문에, 이미 다른 클래스를 상속받고 있다면 Thread 클래스를 상속받을 수 없다. 이런 경우 Runnable 인터페이스를 구현하여 쓰레드를 사용할 수 있다.

Runnable 인터페이스 예제

public class MyRunnable implements Runnable {
    public void run() {
        // 쓰레드가 실행할 작업을 여기에 작성합니다.
        System.out.println("Runnable 쓰레드가 실행 중입니다.");
    }

    public static void main(String[] args) {
        MyRunnable myRunnable = new MyRunnable();
        Thread thread = new Thread(myRunnable);
        thread.start(); // 쓰레드 시작
    }
}

이 예제에서 MyRunnable 클래스는 Runnable 인터페이스를 구현한다. run() 메소드 안에 쓰레드가 실행할 코드를 작성한다. 메인 메소드에서는 MyRunnable의 인스턴스를 생성하고, 이를 Thread 객체에 전달한다. thread.start()를 호출하면 새로운 쓰레드가 시작되고, run() 메소드가 실행된다.

Runnable의 장정

1. 유연성

Runnable을 사용하면 다른 클래스를 상속받고 있어도 쓰레드를 구현할 수 있어 클래스 설계가 더 유연해진다.

2. 코드 분리

쓰레드 실행 코드를 별도의 클래스로 분리하여 관리할 수 있어 코드의 가독성과 유지보수성이 향상된다.

주의 사항

  • Runnable 자체는 쓰레드가 아니라 쓰레드에 의해 실행될 작업을 정의하는 것이다. 실제 쓰레드는 Thread 클래스의 인스턴드에 의해 생성된다.

  • run() 메소드는 직접 호출하지 않는다. 이를 직접 호출하면 새로운 쓰레드가 생성되는 것이아니라, 현재 쓰레드에서 run() 메소드가 실행된다. 쓰레드를 시작하려면 반드시 Thread 객체의 start() 메소드를 호출해야 한다.

참고한 것 : 자바의 정석 , 구글 서칭

0개의 댓글