Kotlin/kotlinx.coroutines (17) 썸네일형 리스트형 CoroutineDispatcher 📌 Kotlin Coroutines의 CoroutineDispatcher 이해하기1. 개요CoroutineDispatcher는 코루틴의 실행을 제어하는 추상 클래스입니다. 코루틴 디스패처는 코루틴이 어떤 스레드나 스레드 풀에서 실행될지를 결정합니다. 다양한 디스패처를 사용하여 코루틴의 실행 컨텍스트를 지정할 수 있습니다.2. 주요 디스패처 종류Dispatchers.Default: 기본 디스패처로, CPU 집약적인 작업에 적합합니다. 공유된 백그라운드 스레드 풀을 사용합니다.Dispatchers.IO: I/O 작업에 최적화된 디스패처로, 파일 또는 네트워크 I/O와 같은 차단 작업을 처리하는 데 사용됩니다. 필요에 따라 스레드를 생성하는 공유 풀을 사용합니다.Dispatchers.Main: UI 스레드에.. CopyableThrowable 📌 Kotlin Coroutines의 CopyableThrowable 이해하기1. 개요CopyableThrowable는 스택 트레이스 복구 시 클래스별 방식으로 복제될 수 있는 Throwable을 나타내는 인터페이스입니다. 스택 트레이스 복구에 대한 추가 정보는 STACKTRACE_RECOVERY_PROPERTY_NAME를 참고하세요.2. 함수 시그니처@ExperimentalCoroutinesApiinterface CopyableThrowable { fun createCopy(): T?}3. 사용 예시CopyableThrowable를 구현하여 스택 트레이스 복구 시 예외를 복제하는 방법의 예시입니다:import kotlinx.coroutines.*import kotlin.coroutines.*cl.. CopyableThreadContextElement 📌 Kotlin Coroutines의 CopyableThreadContextElement 이해하기1. 개요CopyableThreadContextElement는 ThreadContextElement를 확장한 인터페이스로, 자식 코루틴이 해당 컨텍스트를 상속할 때마다 복사됩니다. 이는 ThreadLocal을 사용하는 API에서 코루틴이 "코루틴 안전"하게 ThreadLocal에 쓰기 작업을 수행할 수 있도록 합니다.2. 주요 기능코루틴별 쓰기 격리: 코루틴이 CopyableThreadContextElement를 통해 ThreadLocal에 쓰기를 수행하면, 해당 코루틴과 이후에 시작된 자식 코루틴에서만 그 값을 볼 수 있습니다. 부모 코루틴, 동료 코루틴, 또는 동일한 스레드를 사용하는 다른 코루틴에서는 .. CompletionHandler 📌 Kotlin Coroutines의 CompletionHandler 이해하기1. 개요CompletionHandler는 Job.invokeOnCompletion 및 CancellableContinuation.invokeOnCancellation에 사용되는 핸들러로, 작업이 완료되거나 취소될 때 호출됩니다.2. 함수 시그니처typealias CompletionHandler = (cause: Throwable?) -> Unit3. 매개변수 cause의 의미cause가 null인 경우: 작업이 정상적으로 완료되었거나, 취소되었지만 취소 원인이 없는 경우입니다.cause가 CancellationException의 인스턴스인 경우: 작업 또는 연속성이 정상적으로 취소된 경우로, 이는 오류로 간주되지 않으며, 특.. completeWith 📌 Kotlin Coroutines의 completeWith 함수 이해하기1. 개요completeWith 함수는 CompletableDeferred 인스턴스를 주어진 Result로 완료하는 데 사용됩니다. 이 함수를 통해 성공적인 결과나 예외를 포함한 결과로 작업을 완료할 수 있습니다.2. 함수 시그니처fun CompletableDeferred.completeWith(result: Result): Boolean3. 주요 기능완료: 주어진 Result 객체에 포함된 값이나 예외로 CompletableDeferred를 완료합니다.반환 값: 이 호출로 인해 CompletableDeferred가 완료되었다면 true를 반환하고, 이미 완료된 경우에는 false를 반환합니다.재호출 무효: 이 함수를 여러 번 .. CompletableJob 📌 Kotlin Coroutines의 CompletableJob 이해하기1. 개요CompletableJob은 Job 인터페이스를 확장한 것으로, 외부에서 complete() 함수를 호출하여 작업을 완료할 수 있는 코루틴 작업을 나타냅니다. 주로 Job() 및 SupervisorJob() 생성자 함수에 의해 반환됩니다.2. 주요 기능완료: complete(): Boolean 함수를 호출하여 작업을 완료할 수 있습니다. 이 호출로 작업이 완료되면 true를 반환하고, 이미 완료된 경우에는 false를 반환합니다.예외적 완료: completeExceptionally(exception: Throwable): Boolean 함수를 사용하여 작업을 예외와 함께 완료할 수 있습니다. 이 호출로 작업이 예외적으로 완.. CompletableDeferred 📌 Kotlin Coroutines의 CompletableDeferred 이해하기1. 개요CompletableDeferred는 Deferred의 한 구현체로, 외부에서 complete 또는 cancel 함수를 통해 완료 상태로 만들 수 있는 비동기 작업을 나타냅니다.2. 주요 기능완료: complete(value: T): Boolean 함수를 사용하여 작업을 완료할 수 있습니다.예외적 완료: completeExceptionally(exception: Throwable): Boolean 함수를 통해 예외를 발생시키며 작업을 완료할 수 있습니다.취소: cancel(cause: CancellationException? = null): Boolean 함수를 사용하여 작업을 취소할 수 있습니다.3. 생성 방법C.. CloseableCoroutineDispatcher 📌 Kotlin Coroutines의 CloseableCoroutineDispatcher 이해하기1. 개요CloseableCoroutineDispatcher는 코루틴 디스패처 중 하나로, 새로운 작업을 거부하고 관련된 모든 리소스를 정리할 수 있는 close() 메서드를 제공합니다. 주로 java.lang.Executor나 kotlin.native.Worker를 기반으로 하는 디스패처에서 사용됩니다.2. 주요 기능작업 거부: close() 메서드를 호출하면 새로운 작업의 디스패치가 거부됩니다.리소스 정리: 디스패처와 관련된 모든 리소스가 정리됩니다.3. 사용 예시newSingleThreadContext 함수를 사용하여 CloseableCoroutineDispatcher를 생성하고 사용하는 예시입니다.i.. 이전 1 2 3 다음