Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗ktSpCrPs 157 of 299 menu
◀ ▶

Пауза в Kotlin

Когда корутине нужно подождать, не стоит крутить пустой цикл на потоке. Функция delay принимает длительность в миллисекундах, приостанавливает корутину и позволяет потоку заняться другой работой, пока не истечет таймер.

После возобновления выполнение продолжается со следующей строки. Проверить это можно на двух метках до и после паузы:

import kotlinx.coroutines.delay import kotlinx.coroutines.runBlocking fun main() { runBlocking { println("tick") delay(100) println("tock") } }

Между "tick" и "tock" проходит не меньше заданной задержки. Поток при этом не заблокирован навсегда: корутина снята с выполнения до срабатывания таймера.

Несколько пауз подряд задают ритм шагам. Каждый delay откладывает только текущую корутину, не останавливая весь процесс:

import kotlinx.coroutines.delay import kotlinx.coroutines.runBlocking fun main() { runBlocking { repeat(3) { index -> println(index) delay(50) } } }

В консоли появляются 0, 1 и 2 с промежутками между строками. Так delay разносит печать во времени, оставаясь внутри одной корутины runBlocking.

В runBlocking выведите "wait", сделайте паузу на 200 миллисекунд и напечатайте "go".

Три раза подряд выведите букву "x", между строками делая паузу на 30 миллисекунд. Весь цикл разместите внутри runBlocking.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить