[kotlin] 코틀린에서의 스레드 풀 사용하기

코틀린은 자바와 같이 멀티스레딩을 지원하기 때문에, 스레드 풀을 사용하여 작업을 효율적으로 처리할 수 있습니다. 스레드 풀은 미리 생성된 스레드들을 관리하고 작업을 할당해주는 매니저 역할을 합니다.

스레드 풀 생성하기

코틀린에서 스레드 풀을 생성하려면 ExecutorService 인터페이스를 사용해야 합니다. ExecutorService는 스레드 풀 관리를 담당하는 인터페이스이며, newFixedThreadPool 메소드를 통해 스레드 풀을 생성할 수 있습니다.

다음은 코틀린에서 스레드 풀을 생성하는 예제 코드입니다.

import java.util.concurrent.Executors

fun main() {
    val threadPool = Executors.newFixedThreadPool(5)
    
    // 스레드 풀 사용 예시
    for (i in 1..10) {
        threadPool.execute {
            // 스레드에서 실행할 작업
            println("Task $i is running on thread ${Thread.currentThread().name}")
        }
    }
    
    // 스레드 풀 종료
    threadPool.shutdown()
}

위 코드에서 newFixedThreadPool(5)는 5개의 스레드를 가지는 스레드 풀을 생성합니다. for 루프에서 작업을 실행할 때 execute 메소드를 사용하여 스레드 풀에서 작업을 할당받습니다.

스레드 풀 종료하기

작업이 완료된 후 스레드 풀을 종료해주어야 합니다. 종료하지 않으면 프로그램이 종료되지 않고 계속 실행될 수 있습니다.

스레드 풀을 종료하는 방법은 shutdown 메소드를 호출하는 것입니다. 이 메소드를 호출하면 현재 스레드들은 작업을 마치고 종료됩니다.

참고 자료