Sobes.tech
Back to questions
Junior — Middle
70

Как отличаются между собой потоки выполнения и корутины в контексте программирования?

Companies where asked
ДзенДзен

Answer from AI

sobes.tech AI

Потоки выполнения (threads) — это системные единицы планирования, которые позволяют выполнять код параллельно, используя отдельные стеки и контексты процессора. Они тяжелее в создании и переключении, требуют синхронизации для доступа к общим ресурсам.

Корутины — это легковесные, кооперативные единицы выполнения, которые работают внутри потоков и позволяют писать асинхронный код последовательно. Корутины не создают новые потоки, а при приостановке освобождают поток для других задач, что повышает эффективность.

Пример на Kotlin:

import kotlinx.coroutines.*

fun main() = runBlocking {
    launch {
        delay(1000L)
        println("Корутина завершена")
    }
    println("Главный поток")
}

Здесь корутина не блокирует главный поток, а приостанавливается на delay, позволяя другим задачам выполняться.