[kotlin] 코틀린에서의 스레드 풀 적용 사례
소개
스레드 풀은 다중 작업을 처리하는 데 사용되는 중요한 개념입니다. 코틀린에서 스레드 풀을 적용하는 방법에는 여러 가지가 있습니다. 이 글에서는 java.util.concurrent
패키지의 ThreadPoolExecutor
를 사용하는 방법을 살펴보겠습니다.
스레드 풀 생성하기
import java.util.concurrent.Executors
import java.util.concurrent.ThreadPoolExecutor
// 스레드 풀 생성
val poolSize = Runtime.getRuntime().availableProcessors() // 사용 가능한 프로세서 수
val threadPool: ThreadPoolExecutor =
Executors.newFixedThreadPool(poolSize) as ThreadPoolExecutor
위의 코드를 사용하면 현재 시스템에서 사용 가능한 프로세서 수만큼 스레드를 가진 스레드 풀이 생성됩니다. Executors.newFixedThreadPool()
메서드를 사용하여 스레드 풀을 생성하고, 반환되는 ExecutorService
인터페이스를 ThreadPoolExecutor
로 캐스팅합니다.
작업 제출하기
val task = Runnable {
// 작업을 실행할 코드 작성
}
// 작업 제출
threadPool.execute(task)
Runnable
로 작업을 정의하고, execute()
메서드를 사용하여 작업을 스레드 풀에 제출합니다. 스레드 풀은 작업을 실행할 스레드를 선택하여 처리합니다.
스레드 풀 종료하기
// 스레드 풀 종료
threadPool.shutdown()
모든 작업이 완료된 후에는 스레드 풀을 종료해야 합니다. shutdown()
메서드를 호출하면 스레드 풀에 대기 중인 작업들이 모두 처리될 때까지 기다립니다.
요약
위에서는 코틀린에서 ThreadPoolExecutor
를 사용하여 스레드 풀을 생성하고 작업을 제출하고 종료하는 방법을 알아보았습니다. 스레드 풀을 사용하면 다중 작업을 효율적으로 처리할 수 있으며, 코틀린에서도 간단하게 구현할 수 있습니다.