반응형
코틀린 코루틴에서 런블로킹과 런칭의 차이점 이해
• 이 기사는 런블로킹과 론칭의 거동을 구체적으로 비교하면서 코틀린 코루틴의 메커니즘을 탐구한다.
• 런블로킹은 코루틴 작업이 완료될 때까지 현재 스레드를 차단하는 코루틴을 실행하고, 런블로킹은 새로운 코루틴을 시작하고 라이프사이클을 나타내는 잡 인스턴스를 반환한다.
• RunBlocking을 주된 방법으로 사용하고 Child RunBlocking 하위 작업을 시작할 때 모든 작업이 완료될 때까지 메인 스레드가 차단되어 순차적으로 실행됩니다.
• 실행 차단 작업을 실행된 코루틴 내에서 포장하면 예상치 못한 행동이 발생하며, 실행되기 시작하지만 완료를 기다리지 않아 작업이 순서에 맞지 않게 실행됩니다.
• job.join()을 호출하면 작업과 관련된 모든 코루틴이 계속 진행하기 전에 완료되어 예상되는 순차 실행을 복원할 수 있습니다.
• 태스크1에 런블로킹 대신 런블로킹을 사용하면 태스크2가 태스크1 전에 완료되어 태스크1의 비차단 특성을 보여준다.
• 마지막으로, 발사된 코루틴 내의 모든 작업도 발사를 사용할 때, 실행 순서는 코루틴의 비동기적 특성으로 인해 더 복잡해지며, 작업은 비결정적 순서로 완료된다.
https://medium.com/google-developer-experts/kotlin-coroutine-mechanisms-runblocking-v-launch-386e1ae8e3c2
반응형
'모바일 앱(안드로이드)' 카테고리의 다른 글
안드로이드 compass api ... 인터넷 펌 (62) | 2024.05.03 |
---|---|
안드로이드 스튜디오의 Gemini 로부터 코드 보호: 지적 재산권 보안 보장 ... 퍼옴 (62) | 2024.05.02 |
jetpack compose 중첩 된 lazycolumn 오류 대처 방안 ... 퍼옴 (6) | 2024.04.28 |
koroutine flow .... 퍼옴 (64) | 2024.04.26 |
Jetpack compose spin wheel 만들기 ... 퍼옴 (51) | 2024.04.25 |