Многопоточное программирование в Kotlin | OTUS
🔥 BLACK FRIDAY!
Максимальная скидка -25% на всё. Успейте начать обучение по самой выгодной цене.
Выбрать курс

Курсы

Программирование
iOS Developer. Basic
-25%
Python Developer. Professional
-25%
Разработчик на Spring Framework
-25%
Golang Developer. Professional
-25%
Python Developer. Basic
-25%
iOS Developer. Professional
-25%
Highload Architect
-25%
JavaScript Developer. Basic
-25%
Kotlin Backend Developer
-25%
JavaScript Developer. Professional
-25%
Android Developer. Basic
-25%
Unity Game Developer. Basic
-25%
Разработчик C#
-25%
Программист С Web-разработчик на Python Алгоритмы и структуры данных Framework Laravel PostgreSQL Reverse-Engineering. Professional CI/CD Vue.js разработчик VOIP инженер Программист 1С Flutter Mobile Developer Супер - интенсив по Kubernetes Symfony Framework Advanced Fullstack JavaScript developer Супер-интенсив "Azure для разработчиков"
Инфраструктура
Мониторинг и логирование: Zabbix, Prometheus, ELK
-25%
DevOps практики и инструменты
-25%
Архитектор сетей
-25%
Инфраструктурная платформа на основе Kubernetes
-25%
Супер-интенсив «IaC Ansible»
-16%
Разработчик программных роботов (RPA) на базе UiPath и PIX
-25%
Супер-интенсив "SQL для анализа данных"
-16%
Базы данных Сетевой инженер AWS для разработчиков Cloud Solution Architecture Разработчик голосовых ассистентов и чат-ботов Внедрение и работа в DevSecOps Администратор Linux. Виртуализация и кластеризация Нереляционные базы данных Супер-практикум по использованию и настройке GIT IoT-разработчик Супер-интенсив «ELK»
Специализации Курсы в разработке Подготовительные курсы
+7 499 938-92-02

Многопоточное программирование в Kotlin

Android_Deep_13.11_site-5020-7b3371.png

Корутины в Kotlin — одна из «больших фичей», как было сказано JetBrains. Мы все знаем, что блокировка при высоких нагрузках и частые опросы — не самые блестящие идеи, а мир становится всё более и более push-based и асинхронным.

Многие языки (начиная с C# в 2012 году) поддерживают асинхронное программирование благодаря специальным языковым конструкциям, например, ключевым словам async/await. В Kotlin эта концепция была обобщена, чтобы библиотеки могли определять версии таких конструкций, а async превратился из ключевого слова в простую функцию. Такой дизайн позволяет интегрировать различные асинхронные API: futures/promises, callback-passing и т.д. Он также подходит для выражения ленивых генераторов (yield) и других вариантов использования.

Какова практическая польза?

Итак, корутины — новая классная фича в языке Kotlin (пусть пока и экспериментальная), которая позволяет писать асинхронный код более естественно — вы сможете писать асинхронный код в своём проекте точно так же, как обычно пишете синхронный.

Для асинхронного программирования вам, возможно, приходилось использовать Async Task’и, Thread’ы (которые могли блокировать, эх...), Callback’и или даже RxJava. Использование callback’ов могло вогнать в так называемый «Ад callback’ов» — привет всем JS-программистам, которые это читают. А в RxJava я заметил довольно сложную кривую обучения, которую нужно покорить, чтобы понять, как использовать комбинаторы для соединения нескольких асинхронных вызовов.

В документации Kotlin сказано, что корутины — легковесная альтернатива потоков. Они предлагают способ избежать блокировки потока и заменить его более дешевой и контролируемой операцией.

Команда Kotlin представила корутины для простой реализации многопоточного программирования. Наверняка многие из читателей уже работали с какими-то инструментами многопоточности на базе потоков, например Concurrency API в Java. Я много работал с многопоточным кодом в Java и убеждён в развитости API.

Корутины проще в использовании, но есть несколько правил. Основная идея заключается в том, что корутины — просто блоки кода, которые можно приостанавливать, не блокируя поток. Отличие в том, что блокировка потока не позволяет ему больше ничего делать, в то время как приостановка означает, что он может делать другие вещи, ожидая завершения приостановленного блока.

Полезная статья на тему

Хотите узнать больше? Задавайте вопросы в комментариях!

Не пропустите новые полезные статьи!

Спасибо за подписку!

Мы отправили вам письмо для подтверждения вашего email.
С уважением, OTUS!

Автор
0 комментариев
Для комментирования необходимо авторизоваться
🎁 Максимальная скидка!
Черная пятница уже в OTUS! Скидка -25% на всё!