반응형

코루틴 4

[Coroutine] suspending method: 코루틴 일시 중단

suspending method 일시중단함수 yield 다른 코루틴에게 실행을 양보한다. (코틀린 모듈 최상위) 예제(yield) suspend fun doSomething111(): Int { log("📗", "doSomething111-----------start") yield() log("📗", "doSomething111-----------end") return 13 } suspend fun doSomething222(): Int { log("📘", "doSomething222-----------start") yield() log("📘", "doSomething222-----------end") return 29 } @Test fun yield_test() { runBlocking { val ti..

Language/Kotlin 2022.02.09

[Coroutine] Coroutine builder: 코루틴 시작

Coroutine builder 코루틴 빌더에 원하는 동작을 람다로 넘긴 후 → 코루틴을 만들어 실행한다. 🙉 Job , Defferd 는 뭐지? 더보기 코루틴 작업을 다루는 객체 (오브젝트) Job, Defferd에 대해 취소나 예외처리를 함으로써 용이하게 코루틴의 흐름제어를 할 수 있게 된다. Deferred 인터페이스는 Job인터페이스를 상속 받는다. 더 자세한 내용은 이전글을 참고해주세요! 2022.02.06 - [Platform/Android] - [Coroutine] Coroutine Context: 코루틴이 실행되는 곳 🙉 SendChannel, ReceiveChannel 는 뭐지? 더보기 둘 다 Channel! stream을 반환한다. FIFO 방식의 queue로 되어 있다. 더 이상 사용..

Language/Kotlin 2022.02.07

[Coroutine] Coroutine Context: 코루틴이 실행되는 곳

Coroutine Context 코루틴은 항상 Coroutine Context로 구성된 context 안에서 실행된다. 이 context는 Dispatchers와 Job으로 구성된다. Dispatchers 코루틴이 실행될 스레드를 지정하는 역할 Job 코루틴의 상태를 확인하고, 제어할 수 있다. → 코루틴의 수명주기를 제어할 수 있다. 더 자세히 알아보자! Job https://thdev.tech/kotlin/2019/04/08/Init-Coroutines-Job/ Dispatchers CoroutineContext의 주요 요소 코루틴의 실행 목적에 맞게 실행될 특정 Thread Pool을 지정해 준다. 코루틴 실행 도중, 일시 정지 or 실행 재개를 담당한다. 다음에 어떤 코루틴을 실행 시킬지 결정한다..

Language/Kotlin 2022.02.06

[Coroutine] 코루틴이란?

0. 큰 그림 큰 그림의 개념 부분을 이번 포스팅으로 작성하겠습니다~ 1. 코루틴, Coroutine 비선점형 멀티태스킹(non-preemptive multitasking) 을 수행하는 일반화한 서브루틴 즉, 서로 협력해서 실행을 주고받으면서 작동하는 여러 서브 루틴이다. 🙉 멀티태스킹/ 비선점형 멀티태스킹 / 선점형 멀티태스킹 이란? 더보기 먼저, 멀티태스킹 이란? 여러 작업을 동시에 수행하는 것처럼 보인다. or 실제로 동시에 수행한다. 비선점형 멀티태스킹 CPU를 차지하고 있는 쓰레드가 CPU 연산이 필요 없음을 나타냈을 때만 운영체제가 이를 중단시킬 수 있다. 강제로 죽이려면, 리셋해야 한다. 각 참여자들이 서로 자발적으로 협력해야 한다. 선점형 멀티태스킹 CPU를 차지하고 있는 쓰레드를 운영체제..

Language/Kotlin 2022.02.03
반응형