Как работает код при использовании «блокировки запуска»?Android

Форум для тех, кто программирует под Android
Anonymous
Как работает код при использовании «блокировки запуска»?

Сообщение Anonymous »

Код: Выделить всё

private fun runBlockingWithLaunch() {
print(1)
runBlocking {
print(2)
launch {
print(3)
delay(2_000)
print(4)
}
print(5)
}
print(6)
}
Когда я запускал приведенный выше код, я ожидал ответа 123546, но получил ответ 125346.
Когда я запускал приведенный выше код, я ожидал ответа 123546, но получил ответ 125346.
p>
Может кто-нибудь сказать мне, почему он так работает?
Я также пробовал следующие варианты и ответы изменились, когда я изменил только что добавленную «задержку»

Код: Выделить всё

private fun runBlockingWithLaunch() {
print(1)
runBlocking {
print(2)
launch {
delay(1) //new
print(3)
delay(2_000)
print(4)
}
delay(2) //new
print(5)
}
print(6)
}
результат ->125346

Код: Выделить всё

private fun runBlockingWithLaunch() {
print(1)
runBlocking {
print(2)
launch {
delay(1) //new
print(3)
delay(2_000)
print(4)
}
delay(3) //new
print(5)
}
print(6)
}
результат-> 123546

Подробнее здесь: https://stackoverflow.com/questions/790 ... ng-is-used

Вернуться в «Android»