От автора code.mu: РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
1296 of 1310 menu

Функция thread

Функция thread создает и немедленно запускает новый поток выполнения. Позволяет настроить различные параметры потока: имя, приоритет, демонический режим, а также указать код для выполнения через лямбда-выражение или объект Runnable. Возвращает объект типа Thread для управления созданным потоком.

Импорт

import kotlin.concurrent.thread

Синтаксис

fun thread( start: Boolean = true, isDaemon: Boolean = false, contextClassLoader: ClassLoader? = null, name: String? = null, priority: Int = -1, block: () -> Unit ): Thread

Параметры

start - флаг автоматического запуска потока (по умолчанию true);

isDaemon - флаг демонического потока (по умолчанию false);

contextClassLoader - загрузчик классов для потока;

name - имя потока;

priority - приоритет потока (от 1 до 10);

block - лямбда-выражение с кодом для выполнения в потоке.

Пример

Создадим и запустим простой поток с выводом сообщения:

val th = thread { println("Thread is running") } th.join()

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

String "Thread is running"

Пример

Создадим поток с именем и демоническим режимом:

val th = thread( name = "MyThread", isDaemon = true ) { println("Daemon thread: ${Thread.currentThread().name}") } println("Main thread")

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

String "Main thread" String "Daemon thread: MyThread"

Пример

Создадим поток с отложенным запуском:

val th = thread(start = false) { println("Thread started manually") } Thread.sleep(1000) th.start() th.join()

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

String "Thread started manually"

Пример

Создадим несколько потоков для параллельной обработки данных:

val results = mutableListOf<Int>() val threads = mutableListOf<Thread>() for (i in 1..3) { val th = thread { Thread.sleep(1000) results.add(i * 10) } threads.add(th) } threads.forEach { it.join() } println("Results: $results")

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

List<Int> [10, 20, 30]

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

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