Назад к вопросам
Дзен
Junior — Middle
71
Как отличаются между собой потоки выполнения и корутины в контексте программирования?
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
Потоки выполнения (threads) — это системные единицы планирования, которые позволяют выполнять код параллельно, используя отдельные стеки и контексты процессора. Они тяжелее в создании и переключении, требуют синхронизации для доступа к общим ресурсам.
Корутины — это легковесные, кооперативные единицы выполнения, которые работают внутри потоков и позволяют писать асинхронный код последовательно. Корутины не создают новые потоки, а при приостановке освобождают поток для других задач, что повышает эффективность.
Пример на Kotlin:
import kotlinx.coroutines.*
fun main() = runBlocking {
launch {
delay(1000L)
println("Корутина завершена")
}
println("Главный поток")
}
Здесь корутина не блокирует главный поток, а приостанавливается на delay, позволяя другим задачам выполняться.