인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

dbfl00915님의 프로필 이미지
dbfl00915

작성한 질문수

냉동코더의 알기 쉬운 Modern Android Development 입문

Flow 기초

Coroutine에 관하여

작성

·

351

·

수정됨

0

Kotlin Flow 부분을 학습하며 Coroutine을 공부하던 중 궁금한 점이 생겨 질문올립니다!!

다음과 같이 runBlocking안 launch를 통해 coroutineScope 안에서 thread가 실행되는 것은 이해가 갔습니다! 여기서 launch 밖 코드(1)은 어디서 실행되는 것인지 알 수 있을까요???

fun main() = runBlocking<Unit> {
	launch { //main thread
		for (k in 1..3){
			println("I'm not blocked $k")
			delay(100)
            
                 }
        }
        println("hello") //(1)
}

답변 2

1

dbfl00915님의 프로필 이미지
dbfl00915
질문자

친절한 답변 감사드립니다! 제가 아직 코루틴에 대해 정확히 이해하고 있지 않은 것 같네요..ㅠㅠ 참고해서 공부해보도록 하겠습니다!! 감사합니다!!

1

냉동코더님의 프로필 이미지
냉동코더
지식공유자

주석을 잘못 쓰신것 같습니다. 코루틴스코프 안에서 스레드가 실행되는 것이 아니고 main 블럭이 메인 스레드가 되는거고 launch는 그 안에서 코루틴을 하나 생성하는 것입니다.

그러니까 메인 스레드안에서 launch로 코루틴을 만든 뒤, hello가 실행되고, 그 다음은 코루틴이 수행되게 되니까 다음과 같은 출력이 나오게 됩니다.

hello

I'm not blocked 1

I'm not blocked 2

I'm not blocked 3

 

dbfl00915님의 프로필 이미지
dbfl00915

작성한 질문수

질문하기