[java] 롬복을 사용하여 자바 멀티쓰레딩을 어떻게 구현하고 사용할 수 있나요?

자바 멀티쓰레딩을 구현하는 방법

자바에서 멀티쓰레딩을 구현하고 사용하는 방법은 여러 가지가 있습니다. 이 중 롬복(Lombok)을 사용하여 간편하게 멀티쓰레딩을 구현하는 방법을 알아보겠습니다.

1. 롬복(Lombok) 설정하기

먼저, 프로젝트에 롬복을 추가해야 합니다. 롬복은 개발자를 위해 자동으로 메서드, 생성자, 게터/세터 등을 만들어주는 라이브러리입니다. 롬복을 사용하기 위해서는 다음과 같이 설정해야 합니다.

<!-- Maven 사용자의 경우 -->
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.20</version>
    <scope>provided</scope>
</dependency>
// Gradle 사용자의 경우
dependencies {
    compileOnly 'org.projectlombok:lombok:1.18.20'
    annotationProcessor 'org.projectlombok:lombok:1.18.20'
}

2. @Getter와 @Setter 어노테이션 사용하기

롬복은 @Getter@Setter 어노테이션을 제공하여 간단하게 게터와 세터를 생성할 수 있습니다.

public class ThreadExample {
    @Getter @Setter
    private String message;
    
    public static void main(String[] args) {
        ThreadExample example = new ThreadExample();
        example.setMessage("Hello, World!");
        System.out.println(example.getMessage());
    }
}

위 예제에서 @Getter 어노테이션은 getMessage() 메서드를, @Setter 어노테이션은 setMessage() 메서드를 컴파일시 자동으로 생성해줍니다.

3. Runnable 인터페이스 구현하기

멀티쓰레딩을 구현하기 위해서는 Runnable 인터페이스를 구현해야 합니다. 롬복을 사용하여 간단하게 Runnable 인터페이스를 구현해보겠습니다.

import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.Setter;

@AllArgsConstructor
public class MyRunnable implements Runnable {
    private final String message;
    
    @Override
    public void run() {
        System.out.println(message);
    }
}

위 예제에서 @AllArgsConstructor 어노테이션은 생성자를 컴파일시 자동으로 생성해줍니다.

4. 멀티쓰레딩 실행하기

이제 MyRunnable 클래스를 사용하여 멀티쓰레딩을 실행해보겠습니다.

public class MultiThreadExample {
    public static void main(String[] args) {
        Thread thread1 = new Thread(new MyRunnable("Thread 1"));
        Thread thread2 = new Thread(new MyRunnable("Thread 2"));
        
        thread1.start();
        thread2.start();
    }
}

위 예제에서는 Thread 클래스를 사용하여 MyRunnable 인스턴스를 전달하여 각각의 쓰레드를 생성하고 실행합니다.

마무리

이상으로 롬복을 사용하여 자바 멀티쓰레딩을 구현하는 방법에 대해 알아보았습니다. 롬복을 사용하면 간편하게 필요한 코드를 자동으로 생성할 수 있으므로 개발 효율성을 높일 수 있습니다.