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

Функция runBlocking

Функция runBlocking создает новый корутин-контекст и блокирует текущий поток до тех пор, пока не завершатся все корутины внутри этого блока. Является мостом между обычным и асинхронным кодом. Принимает необязательный параметр контекста и блок кода с получателем типа CoroutineScope.

Импорт

import kotlinx.coroutines.runBlocking

Синтаксис

fun <T> runBlocking( context: CoroutineContext = EmptyCoroutineContext, block: suspend CoroutineScope.() -> T ): T

Пример

Базовое использование runBlocking для выполнения асинхронного кода:

import kotlinx.coroutines.delay import kotlinx.coroutines.runBlocking fun main() { println("Start") runBlocking { delay(1000) println("Inside runBlocking") } println("End") }

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

Start Inside runBlocking End

Пример

Использование runBlocking с возвратом значения:

import kotlinx.coroutines.delay import kotlinx.coroutines.runBlocking fun main() { val result = runBlocking { delay(500) "Hello from coroutine" } println("Result: $result") }

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

Result: Hello from coroutine

Пример

Запуск нескольких корутин внутри runBlocking:

import kotlinx.coroutines.delay import kotlinx.coroutines.launch import kotlinx.coroutines.runBlocking fun main() = runBlocking { launch { delay(1000) println("Coroutine 1") } launch { delay(500) println("Coroutine 2") } println("Main coroutine") }

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

Main coroutine Coroutine 2 Coroutine 1

Пример

Обработка исключений в runBlocking:

import kotlinx.coroutines.runBlocking fun main() { try { runBlocking { throw RuntimeException("Test exception") } } catch (e: Exception) { println("Caught exception: ${e.message}") } }

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

Caught exception: Test exception

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

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