코루틴은 실행을 위해 스레드를 공유합니다. runBlocking 빌더가 코루틴에서 호출되는 경우, 기본 스레드를 차단하며 다른 코루틴이 해당 리소스를 사용하는 것을 막습니다. 이로 인해 성능 문제가 발생하거나, 좋지 않은 경우에는 스레드가 기아 상태에 빠질 수 있습니다.
코루틴 기본형(suspend 함수 또는 빌더)에서 잠재적인 호출 스택을 runBlocking 빌더에 제공합니다.
예:
suspend fun main() {
foo()
}
fun foo() {
runBlocking { suspendFunction() }
}
가능한 솔루션:
suspend fun main() {
foo()
}
suspend fun foo() {
suspendFunction()
}
재정의가 있는 함수 탐색 옵션을 사용하여 가상 함수 분석을 구성합니다.