코틀린 코루틴의 정석

· 📚 Study
`CoroutineContext` : 코루틴을 실행하는 실행 환경을 설정하고 관리하는 인터페이스Coroutine Context 구성 요소`CoroutineName` : 코루틴 이름 설정`CoroutineDispatcher` : 코루틴을 스레드에 할당해 실행`Job`: 코루틴의 추상체로 코루틴을 조작`CoroutineExceptionHandler` : 코루틴에서 발생한 예외 처리 Coroutine Context 구성Coroutine Context 구성키 - 값 쌍으로 구성 요소를 관리`CoroutineContext` 객체 간의 더하기 연산자(+)를 사용하여 객체를 구성val coroutineContext: CoroutineContext = newSingleThreadContext("MyThread") + ..
· 📚 Study
코루틴 빌더 함수코루틴을 생성하는 데 사용하는 함수 ex) `launch`, `runBlocking`…코루틴을 만들고 코루틴을 추상화한 Job 객체 생성 → Job 객체로 코루틴의 상태를 추적 및 제어 Join을 사용한 코루틴 순차 처리`join()` : 먼저 처리되어야 하는 코루틴의 실행이 완료될 때까지 호출부의 코루틴을 일시 중단하는 함수💡 delay 함수 - `Thread.sleep()` 해당 함수가 실행되는 동안 스레드가 블로킹돼 사용할 수 없음 - `delay()` 해당 함수가 실행되는 동안 스레드는 다른 코루틴이 사용할 수 있음Join 함수 사용해 순차 처리하기fun main() = runBlocking { val updateTokenJob = launch(Dispatchers.IO) ..
· 📚 Study
Coroutine Dispatcher란?Coroutine을 스레드로 보내 실행시키는 역할스레드 / 스레드 풀을 가지며 코루틴을 실행 요청한 스레드에서 코루틴이 실행되도록 함동작 방식자신에게 실행 요청된 코루틴을 작업 대기열에 적재한 후, 사용할 수 있는 스레드가 생기면 스레드로 보냄`CoroutineDispatcher` 객체에 코루틴의 실행이 요청 됨[CoroutineDispatcher] 실행 요청 받은 코루틴을 작업 대기열에 적재[CoroutineDispatcher] 사용할 수 있는 스레드가 있는지 확인있다면, 코루틴을 해당 스레드로 보냄없다면(모든 스레드가 코루틴을 실행중이라면), 작업 대기열에서 대기하도록 둠스레드 중 하나가 자유로워 졌을 때, 대기열에 있던 코루틴을 스레드로 보냄역할코루틴의 실행을..
점이
'코틀린 코루틴의 정석' 태그의 글 목록