Today's

길을 나서지 않으면 그 길에서 만날 수 있는 사람을 만날 수 없다

모바일 앱(안드로이드)

kotlin koroutine 에 대한 이해.... 퍼옴

Billcorea 2024. 5. 1. 15:28
반응형

코틀린 코루틴에서 런블로킹과 런칭의 차이점 이해

안드로이드


• 이 기사는 런블로킹과 론칭의 거동을 구체적으로 비교하면서 코틀린 코루틴의 메커니즘을 탐구한다.

• 런블로킹은 코루틴 작업이 완료될 때까지 현재 스레드를 차단하는 코루틴을 실행하고, 런블로킹은 새로운 코루틴을 시작하고 라이프사이클을 나타내는 잡 인스턴스를 반환한다.

• RunBlocking을 주된 방법으로 사용하고 Child RunBlocking 하위 작업을 시작할 때 모든 작업이 완료될 때까지 메인 스레드가 차단되어 순차적으로 실행됩니다.

• 실행 차단 작업을 실행된 코루틴 내에서 포장하면 예상치 못한 행동이 발생하며, 실행되기 시작하지만 완료를 기다리지 않아 작업이 순서에 맞지 않게 실행됩니다.

• job.join()을 호출하면 작업과 관련된 모든 코루틴이 계속 진행하기 전에 완료되어 예상되는 순차 실행을 복원할 수 있습니다.

• 태스크1에 런블로킹 대신 런블로킹을 사용하면 태스크2가 태스크1 전에 완료되어 태스크1의 비차단 특성을 보여준다.

• 마지막으로, 발사된 코루틴 내의 모든 작업도 발사를 사용할 때, 실행 순서는 코루틴의 비동기적 특성으로 인해 더 복잡해지며, 작업은 비결정적 순서로 완료된다.

https://medium.com/google-developer-experts/kotlin-coroutine-mechanisms-runblocking-v-launch-386e1ae8e3c2

Kotlin Coroutine mechanisms: runBlocking v. launch

Introduction to coroutine behavior through playful examples

medium.com

반응형