써먹는 웹개발

[Java] Runnable 인터페이스를 사용하는 이유 본문

웹개발/Java & Jsp

[Java] Runnable 인터페이스를 사용하는 이유

kmhan 2023. 12. 4. 16:48


728x90
반응형

Java에서 Runnable 인터페이스를 사용하는 이유는 다양합니다. Runnable은 스레드를 생성하고 실행하기 위한 인터페이스로, 다음과 같은 이점이 있습니다:

  1. 스레드 분리 (Thread Separation): Runnable을 사용하면 코드를 별도의 스레드로 분리할 수 있습니다. 이는 프로그램의 성능을 향상시키고 여러 작업을 병렬로 처리할 수 있도록 합니다.
  2. 유연성 (Flexibility): Runnable을 구현하는 클래스는 다른 클래스를 확장할 수 있고, 여러 인터페이스를 구현할 수 있습니다. 이는 Java에서 다중 상속이 불가능하므로 인터페이스를 활용하여 유연성을 높일 수 있습니다.
  3. 쓰레드 풀 (Thread Pool) 사용: Runnable을 사용하면 쓰레드 풀과 함께 사용할 수 있습니다. 쓰레드 풀은 재사용 가능한 스레드를 효과적으로 관리하여 애플리케이션의 성능을 개선합니다.
  4. 동시성 관리: Runnable을 이용하여 여러 작업을 동시에 실행할 때, 스레드 동기화 및 관리를 쉽게 할 수 있습니다. Java에서는 synchronized 키워드나 Lock 인터페이스 등을 사용하여 스레드 간의 동기화를 수행할 수 있습니다.
  5. 콜백(Callback) 구현: Runnable은 주로 백그라운드에서 실행되는 작업을 구현할 때 활용됩니다. 즉, 다른 스레드에서 수행될 코드를 정의할 수 있습니다.

간단한 예제로 Runnable을 사용하는 방법을 살펴보겠습니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public class MyRunnable implements Runnable {
    @Override
    public void run() {
        // 스레드에서 실행될 코드 작성
        for (int i = 0; i < 5; i++) {
            System.out.println(Thread.currentThread().getId() + " Value " + i);
        }
    }
 
    public static void main(String[] args) {
        // Runnable 구현체를 이용하여 스레드 생성 및 실행
        Thread thread1 = new Thread(new MyRunnable());
        Thread thread2 = new Thread(new MyRunnable());
 
        thread1.start();
        thread2.start();
    }
}
 
cs

 

이 코드에서 MyRunnableRunnable 인터페이스를 구현하고 있습니다. main 메서드에서는 이를 이용하여 두 개의 스레드를 생성하고 실행하고 있습니다.

 

출처 : ChatGPT

728x90
반응형


Comments