|
|
rss_habr
Современные возможности C++ и проверенные паттерны: активный объект, внешний полиморфизм и корутиныПонедельник, 09 Января 2023 г. 11:21 (ссылка)
В этой статье я покажу, как внешний полиморфизм (реализация полиморфного поведения вне объекта, для которого такое поведение требуется) помогает писать красивые и чистые программы, и расскажу о некоторых базовых и продвинутых способах реализации. Примером будет служить старый добрый паттерн многопоточного программирования “активный объект”. В конце я покажу, как просто реализовать этот паттерн с помощью корутин из стандарта C++20, и как вы можете использовать их, чтобы сделать активный объект еще лучше, добавив в него настоящие асинхронные функции. Читать далееhttps://habr.com/ru/post/709436/?utm_source=habrahabr&utm_medium=rss&utm_campaign=709436
rss_habr
Как работать с процессами и потоками в PythonСреда, 23 Ноября 2022 г. 10:50 (ссылка)
Раскрывать тему параллельного или асинхронного программирования непросто. Во-первых, она перегружена терминологией и трудна для понимания. Как правило, тонкости и особенности работы с языками усваиваются, лишь когда столкнешься с ними на практике. Во-вторых, в контексте Python тоже много своих подводных камней. Но сегодня почти любой современный web-сервис сталкивается с необходимостью многопоточности или асинхронности. Поскольку это многопользовательская среда, мы хотим направить всю процессорную мощность не на ожидание, а на решение прикладных задач бизнеса, чтобы все пользователи во время получили необходимые данные. Эта статья будет полезна тем разработчикам, которые хотят выполнять больше работы за одно и то же время и задействовать все ресурсы своего железа. Проще говоря, делать больше при этом обходиться меньшими ресурсами. Пусть железо работает, а не простаивает. Читать далееhttps://habr.com/ru/post/701020/?utm_source=habrahabr&utm_medium=rss&utm_campaign=701020
rss_habr
Параллелизм, асинхронность, многопоточность – Reactor почти всё сделает за ВасВоскресенье, 14 Ноября 2022 г. 02:09 (ссылка)
Реактивные паттерны программирования становятся всё более востребованы при реализации высоконагруженных сервисов. Вот уже и в Spring законсервировали RestTemplate. В тоже время, реактивные фреймворки предоставляют инструменты, позволяющие с минимальными затратами на кодирование использовать механизмы асинхронности и многопоточности. В качестве примера, предлагаю рассмотреть реализацию сервис индексации данных в ElasticSearch. Данные хранятся в MongoDB, ключевые атрибуты которых синхронизируются с ElasticSearch (функционально похоже на Logstash). В проекте используется стек: Java/Spring Boot/Reactor/WebFlux/WebClient/RabbitMQ/MongoDB. На выбор RabbitMQ и MongoDB повлияло, в том числе, наличие реактивных драйверов. Читать далееhttps://habr.com/ru/post/699112/?utm_source=habrahabr&utm_medium=rss&utm_campaign=699112
rss_habr
19 способов сделать сокет-сервер на Python. Эволюционный подход. Часть 3. Первый подход к асинхронностиПонедельник, 11 Июля 2022 г. 18:00 (ссылка)
В прошлый раз мы рассмотрели, что такое синхронное программирование, и с какими проблемами с ним сталкивается разработчик. На примере простого сервера с блокирующими сокетами мы увидели, что в синхронно выполняющейся программе все инструкции выполняются строго по очереди, и если встречается системный вызов ввода-вывода, то он может полностью остановить выполнение программы на довольно продолжительное время — пока не завершится. Весь этот период процессор простаивает в ожидании, хотя мог бы выполнять другие задачи, которых накапливается немало. В результате сервер одновременно может обрабатывать только одно подключение. Чтобы перейти ко второму, предыдущее должно быть закрыто. Решить проблему многозадачности можно стандартными средствами вытесняющей многозадачности: процессами или потоками. Но тут разработчик сталкивается с достаточно серьезными трудностями. Процессы требуют дополнительных ресурсов на свое обслуживание, а потому невыгодны. А потоки влекут за собой множество трудноотлавливаемых и сложновоспроизводимых багов, из-за чего требуется долгая и кропотливая дополнительная работа по синхронизации потоков. В результате мы становимся перед выбором: или дополнительные расходы на железо, или дополнительные расходы на программистов. Но, к счастью, существует и третий вариант — кооперативная многозадачность с помощью системного вызова select и его аналогов (poll, epoll и других). Он позволяет мультеплексировать несколько задач в одном потоке выполнения и в сущности является обычной синхронной программой. А потому никаких дополнительных трат процессорного времени и времени разработчиков не требуется. Читать далееhttps://habr.com/ru/post/676124/?utm_source=habrahabr&utm_medium=rss&utm_campaign=676124
rss_habr
Async/await в Swift 5.5: асинхронность «здорового человека»Пятница, 08 Июля 2022 г. 19:25 (ссылка)
Не так давно WWDC21 представила новый интерфейс асинхронности async/await. Это одно из самых важных обновлений Swift за последнее время. Меня, как iOS-разработчика, это событие не могло оставить равнодушной. Я решила вникнуть в нюансы работы async/await и сейчас хочу поделиться своим пониманием механизма, а также показать все его внешние и некоторые внутренние преимущества. Для начала давайте разберемся с терминологией. Читать далееhttps://habr.com/ru/post/675982/?utm_source=habrahabr&utm_medium=rss&utm_campaign=675982
rss_habr
Асинхронный python без головной боли (часть 2)Четверг, 16 Июня 2022 г. 17:34 (ссылка)
Продолжаем готовить asyncio Теперь мы уже знаем достаточно, чтобы написать модный асинхронный микросервис, реализующий паттерн "API-шлюз". И попутно познакомимся с асинхронным логгированием и доступом к базе данных. Выпей меняhttps://habr.com/ru/post/671798/?utm_source=habrahabr&utm_medium=rss&utm_campaign=671798
rss_habr
Асинхронные моки. Создаем и тестируем telegram-бот на KotlinПонедельник, 30 Мая 2022 г. 19:01 (ссылка)
Любая асинхронность повышает уровень тревожности при разработке автоматических тестов. Особенно в ситуации, когда нужно выполнить проверку корректности работы системы, основанной на графе состояний со взаимодействием с внешним API через Flow. Примером такой системы может быть Telegram-бот, построенный на диалоге с внешним пользователем. В этой статье мы с вами создадим простой бот на Kotlin (с поддержкой многоязычности) и последовательно разберем возможные способы использования асинхронных моков и тестов для Flow с использованием библиотеки mockk и типобезопасной библиотеки для взаимодействия с API Telegram на Kotlin. Читать далееhttps://habr.com/ru/post/668352/?utm_source=habrahabr&utm_medium=rss&utm_campaign=668352
rss_habr
Асинхронный python без головной болиВторник, 24 Мая 2022 г. 22:59 (ссылка)
Почему так сложно понять asyncio? Асинхронное программирование традиционно относят к темам для "продвинутых". Действительно, у новичков часто возникают сложности с практическим освоением асинхронности. Но будь я автором самого толстого в мире учебника по python, я бы рассказывал читателям про асинхронное программирование уже с первых страниц. Вот только написали "Hello, world!" и тут же приступили к созданию "Hello, asynchronous world!". А уже потом циклы, условия и все такое. Читать далееhttps://habr.com/ru/post/667630/?utm_source=habrahabr&utm_medium=rss&utm_campaign=667630
rss_habr
Websocket-сервер для геолокации на asyncioПятница, 08 Апреля 2022 г. 19:59 (ссылка)
Привет! 11-го апреля у нас стартует 3-й поток курса. Чтобы показать, чему учатся наши студенты, мы провели live-code-вебинар по вебсокетам, на котором написали сервис, в котором пользователи могут делиться своей геопозицией в режиме реального времени. Хотите узнать, как создавать такие сервисы? Хочуhttps://habr.com/ru/post/659341/?utm_source=habrahabr&utm_medium=rss&utm_campaign=659341
|
LiveInternet.Ru |
Ссылки: на главную|почта|знакомства|одноклассники|фото|открытки|тесты|чат О проекте: помощь|контакты|разместить рекламу|версия для pda |