[java] 롬복을 사용하여 자바 스레드를 어떻게 생성하고 제어할 수 있나요?

자바에서 스레드를 생성하고 제어하는 작업은 복잡하고 번거로운 일이 될 수 있지만, 롬복을 사용하면 이 작업을 간단하게 처리할 수 있습니다. 롬복은 자바 스레드를 생성하기 위한 애노테이션과 빌더 클래스를 제공합니다. 이를 사용하여 스레드를 생성하고 제어할 수 있습니다.

먼저, 롬복을 프로젝트에 추가해야 합니다. Maven이나 Gradle과 같은 의존성 관리 도구를 사용하여 롬복을 프로젝트에 추가할 수 있습니다.

롬복을 추가한 후에는, @Builder 애노테이션을 사용하여 빌더 클래스를 생성합니다. 이 빌더 클래스는 스레드를 생성하고 제어하기 위한 메서드를 제공합니다.

다음은 롬복을 사용하여 자바 스레드를 생성하고 제어하는 예제 코드입니다.

import lombok.Builder;

public class ThreadExample {
  
  @Builder
  public static class CustomThread extends Thread {
    
    private String name;
    private int count;
    
    @Override
    public void run() {
      for (int i = 0; i < count; i++) {
        System.out.println("Thread " + name + ": " + i);
        try {
          Thread.sleep(1000);
        } catch (InterruptedException e) {
          e.printStackTrace();
        }
      }
    }
  }
  
  public static void main(String[] args) {
    CustomThread thread1 = CustomThread.builder().name("Thread 1").count(5).build();
    CustomThread thread2 = CustomThread.builder().name("Thread 2").count(3).build();
    
    thread1.start();
    thread2.start();
    
    try {
      thread1.join();
      thread2.join();
    } catch (InterruptedException e) {
      e.printStackTrace();
    }
    
    System.out.println("All threads finished.");
  }
}

위의 예제 코드에서는 CustomThread 라는 빌더 클래스를 정의하고, namecount 필드에 대한 애노테이션을 추가했습니다. run 메서드에서는 주어진 횟수만큼 반복하여 일정 시간마다 메시지를 출력하는 작업을 수행합니다.

main 메서드에서는 CustomThread 인스턴스를 빌더를 사용하여 생성하고, start 메서드를 호출하여 스레드를 시작합니다. 마지막으로, join 메서드를 사용하여 모든 스레드의 실행이 종료될 때까지 대기하고, 실행이 종료되면 “All threads finished.” 메시지를 출력합니다.