НОВИНКА!
Занимательная математика от Трепачёва. Присоединяйтесь к нам!
1297 of 1310 menu

Модификатор suspend

Модификатор suspend применяется к функциям, которые могут приостанавливать выполнение корутин без блокировки потока. Такие функции могут содержать другие suspend-функции или использовать конструкции типа delay. Они работают только внутри корутин или других suspend-функций.

Синтаксис

suspend fun functionName(parameters): ReturnType { // тело функции }

Пример

Простая suspend-функция с задержкой:

import kotlinx.coroutines.* suspend fun delayedGreeting() { delay(1000) println("Hello after delay") } fun main() = runBlocking { delayedGreeting() }

Результат выполнения кода:

Hello after delay

Пример

Suspend-функция, вызывающая другую suspend-функцию:

suspend fun firstTask() { delay(500) println("First task completed") } suspend fun secondTask() { delay(300) println("Second task completed") } suspend fun runTasks() { firstTask() secondTask() } fun main() = runBlocking { runTasks() }

Результат выполнения кода:

First task completed Second task completed

Пример

Suspend-функция с возвращаемым значением:

suspend fun calculateSum(a: Int, b: Int): Int { delay(200) return a + b } fun main() = runBlocking { val res = calculateSum(5, 7) println(res) }

Результат выполнения кода:

Int 12

Пример

Использование suspend-функции с корутинами:

suspend fun fetchData(): String { delay(1000) return "Data loaded" } fun main() = runBlocking { val job = launch { val data = fetchData() println(data) } println("Waiting for data...") job.join() }

Результат выполнения кода:

Waiting for data... Data loaded

Смотрите также

  • функцию launch,
    которая запускает новую корутину
  • функцию async,
    которая запускает корутину с возвращаемым значением
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить