Запись на курсы по HTML, CSS, JavaScript, PHP, Python, фреймворкам и CMS,
а также: помощь в поиске работы и заказов, стажировка на реальных проектах→
1300 of 1310 menu
Новый формат обучения! Репетиторство по программированию. Есть еще 3 свободных места! Жми для подробностей.

Функция launch

Функция launch является расширением для CoroutineScope и запускает новую корутину. Она возвращает объект типа Job, который можно использовать для управления жизненным циклом корутины. Параметры функции включают контекст корутины, режим запуска и блок кода для выполнения.

Импорт

import kotlinx.coroutines.launch import kotlinx.coroutines.CoroutineScope

Синтаксис

fun CoroutineScope.launch( context: CoroutineContext = EmptyCoroutineContext, start: CoroutineStart = CoroutineStart.DEFAULT, block: suspend CoroutineScope.() -> Unit ): Job

Пример

Запуск простой корутины:

import kotlinx.coroutines.* fun main() = runBlocking { launch { delay(1000) println("World!") } println("Hello") }

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

Hello World!

Пример

Использование контекста корутины:

import kotlinx.coroutines.* fun main() = runBlocking { launch(Dispatchers.Default) { println("Running in ${Thread.currentThread().name}") } }

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

Running in DefaultDispatcher-worker-1

Пример

Использование возвращаемого объекта Job:

import kotlinx.coroutines.* fun main() = runBlocking { val job = launch { delay(1000) println("Job completed") } job.join() println("All done") }

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

Job completed All done

Пример

Отмена корутины через Job:

import kotlinx.coroutines.* fun main() = runBlocking { val job = launch { repeat(1000) { i -> println("Job: I'm working $i") delay(100) } } delay(250) job.cancel() println("Job cancelled") }

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

Job: I'm working 0 Job: I'm working 1 Job: I'm working 2 Job cancelled

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

  • функцию async,
    которая запускает корутину с возвратом результата
  • функцию runBlocking,
    которая блокирует текущий поток до завершения корутины