Публикации по теме 'coroutine'
Контекст выполнения Kotlin Flows
Во многих случаях важен контекст выполнения кода. В серверных программах контекст может нести диагностическую информацию; в приложениях пользовательского интерфейса к виджетам можно прикоснуться только из определенного основного потока. Это может создать потенциальную проблему, когда ваш код станет больше, особенно когда вы разделяете производителей данных и потребителей данных. Kotlin Flows предназначены для обеспечения такой модульности, поэтому давайте посмотрим, как они ведут себя..
Внутренности асинхронного программирования
С примером реализации Kotlin
Большинство языков программирования, таких как Go, Rust, Kotlin и т. д., предоставляют очень «облегченные» абстракции потоков.
Это позволяет вам создавать тысячи таких легковесных потоков, не создавая никаких дополнительных затрат на переключение контекста операционной системы!
Хотя эти языки используют разную семантику для обеспечения таких облегченных потоков, базовые строительные блоки и шаблоны реализации такой инфраструктуры очень похожи.
Я..
Явный параллелизм
Явный параллелизм
Параллелизм важен в современном мире. Мобильное или веб-приложение должно иметь возможность выполнять сетевой запрос и одновременно обновлять свой пользовательский интерфейс, отображать анимацию и реагировать на ввод пользователя. Серверное приложение должно уметь обрабатывать множество одновременных запросов. А как насчет параллелизма? Это тоже полезно, но не так часто. Многие успешные серверные приложения работают полностью в одном потоке без какого-либо..
Kotlin: погружение в сопрограммы и каналы
Если вы пришли с Java, вы, вероятно, ассоциируете асинхронность с потоками. А это значит, что вы имели дело с общим изменяемым состоянием. Вы потратили бесчисленные часы на поиск тупиков и условий гонки. Вы проявили осторожность при изменении общего состояния с помощью примитивов блокировки, таких как synchronized . Возможно, вы даже использовали функции блокировки более высокого порядка, такие как Semaphores и Latches .
На этом этапе вы можете видеть, что параллелизм - это..
Как удвоить скорость обработки python?
Как удвоить скорость обработки python?
Как очень практичный язык в повседневной разработке и производстве, необходимо освоить некоторые способы использования Python, такие как сканирование, сетевой запрос и другие сценарии, что очень практично. Но питон однопоточный. Как улучшить скорость обработки Python — очень важный вопрос. Ключевая технология в этом вопросе называется сопрограммой. Эта статья о понимании и использовании сопрограмм Python в основном предназначена для того, чтобы..
Асинхронное программирование - Часть 2
Абстрактный
В части 1 этой серии мы узнали об асинхронном программировании и примитивах программирования, таких как обратные вызовы и фьючерсы. Futures / Promises предоставили программистам возможность обмениваться данными между потоками, не беспокоясь о низкоуровневых примитивах синхронизации потоков.
Параллелизм на основе задач
«Параллелизм на основе задач» относится к более высокому уровню абстракции, когда программист управляет «задачами» - фрагментами работы, которую необходимо..
Совместное изменяемое состояние с сопрограммами
Несколько дней назад было объявлено о выходе новой версии Kotlin 1.3 и с грядущего релиза фреймворк сопрограмм больше не будет экспериментальным. Это означает, что фреймворк вышел из экспериментального пакета и, безусловно, может использоваться в наших производственных приложениях. По этой причине сейчас хорошее время для более точного изучения этой библиотеки. Как уже упоминалось в заголовке, мы собираемся рассмотреть совместно используемое изменяемое состояние с сопрограммами.
Не..