Как работает код при использовании «блокировки запуска»?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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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