CoroutineBuilder 를 통해서 알아야할 것: coroutine의 범위(scope)에 대해서 이해하고, coroutineBuilder 의 여러종류의 키워드의 차이점을 이해한다. (launch, async, withContext, runBlocking, actor, produce)
CoroutineBuilder 를 사용하여서 coroutine 을 생성하는 기본 키워드는 이미 이전 포스팅에서 다루었기때문에(Kotlin – “coroutine” basic) 이전키워드에 추가하여서알아야할 키워드들을 정리하려고 한다.
CoroutineBuilder | Return | 비고 |
launch() | 리턴없음(Job) | 결과가 없는 코루틴을 생성 |
async() | Deferred<T> | await 함수를 통해서 코루틴 영역의마지막 라인을 결과로 받을수있음 결과값을 원하는 시점에 await함수로 결과값을 얻을수있음 |
withContext() | T | 결과 T 를 그자리에서 리턴해서 받음 |
runBlocking() | T | 코루틴들이 모두 완료할떄까지 쓰레드 점유, Main에서 코루틴 실행될 경우 코루틴을 기다렸다가 메인이 종료된다. |
actor() | SendChannel<E> | SendChannel<E>를 반환, Send채널을 통해 actor()블록으로 채널을 통해 전송 |
produce() | ReceiveChannel<E> | 블록 내부는 송신자(Sender)가 되고 / 반환된 ReceiveChannel이 수신자(Receiver) |
0