Отладка корутин с помощью IntelliJ IDEA – учебник
Этот учебник демонстрирует, как создавать Kotlin корутины и отлаживать их с помощью IntelliJ IDEA.
Учебник предполагает, что вы уже знакомы с концепцией корутин.
Создание корутин
Откройте Kotlin проект в IntelliJ IDEA. Если у вас нет проекта, создайте его.
-
Откройте файл
main.ktвsrc/main/kotlin.Директория
srcсодержит Kotlin исходные файлы и ресурсы. Файлmain.ktсодержит пример кода, который будет выводитьHello World!. -
Измените код в функции
main():Используйте блок
runBlocking(), чтобы обернуть корутину.Используйте функцию
async(), чтобы создать корутины, которые вычисляют отложенные значенияaиb.Используйте функцию
await(), чтобы дождаться результата вычисления.Используйте функцию
println(), чтобы вывести статус вычисления и результат умножения в выходные данные.
import kotlinx.coroutines.* fun main() = runBlocking<Unit> { val a = async { println("I'm computing part of the answer") 6 } val b = async { println("I'm computing another part of the answer") 7 } println("The answer is ${a.await() * b.await()}") } -
Соберите код, нажав Собрать проект.
Отладка корутин
-
Установите точки останова в строках с вызовом функции
println(). -
Запустите код в режиме отладки, нажав Отладить рядом с конфигурацией запуска в верхней части экрана.
Окно инструментов Отладка появляется:
Вкладка Фреймы содержит стек вызовов.
Вкладка Переменные содержит переменные в текущем контексте.
Вкладка Корутины содержит информацию о запущенных или приостановленных корутинах. Она показывает, что есть три корутины. Первая имеет статус ВЫПОЛНЯЕТСЯ, а две другие – СОЗДАНА.
-
Возобновите сеанс отладки, нажав Возобновить программу в окне инструментов Отладка:
Теперь вкладка Корутины показывает следующее:
Первая корутина имеет статус ПРИОСТАНОВЛЕНА – она ждет значений, чтобы их перемножить.
Вторая корутина вычисляет значение
a– ее статус ВЫПОЛНЯЕТСЯ.Третья корутина имеет статус СОЗДАНА и не вычисляет значение
b.
-
Возобновите сеанс отладки, нажав Возобновить программу в окне инструментов Отладка:
Теперь вкладка Корутины показывает следующее:
Первая корутина имеет статус ПРИОСТАНОВЛЕНА – она ждет значений, чтобы их перемножить.
Вторая корутина вычислила свое значение и исчезла.
Третья корутина вычисляет значение
b– ее статус ВЫПОЛНЯЕТСЯ.
Используя отладчик IntelliJ IDEA, вы можете углубиться в каждую корутину для отладки вашего кода.
© 2010–2022 JetBrains s.r.o. and Kotlin Programming Language contributors
Licensed under the Apache License, Version 2.0.
https://kotlinlang.org/docs/debug-coroutines-with-idea.html