Написать этот материал меня побудило... отсутствие хороших статей по корутинам в C++ в русскоязычном интернете, как бы странно это не звучало. Ну серьезно, C++20 существует уже несколько лет как, но до сих пор почти все статьи про корутины, что встречаются в рунете, относятся к одному из двух типов. Или обзор начинается с самых глубин и мелочей, пересказывая cppreference, а потом автор выдыхается и все сводится к «ну а дальше все понятно, возьмите и примените это в своем коде», что напоминает известную картинку с совой:
Рубрика «асинхронное программирование»
Корутины C++ для чайников: пишем асинхронный веб-клиент
2024-03-08 в 20:35, admin, рубрики: c++, curl, асинхронное программирование, асинхронность, корутиныАсинхронный python без головной боли
2022-05-24 в 19:59, admin, рубрики: async, asyncio, await, python, асинхронное программирование, асинхронность, асинхронные задачи, асинхронные функции, асинхронный код1. Почему так сложно понять asyncio
Асинхронное программирование традиционно относят к темам для "продвинутых". Действительно, у новичков часто возникают сложности с практическим освоением асинхронности. В случае python на то есть весьма веские причины:
-
Асинхронность в python была стандартизирована сравнительно недавно. Библиотека
asyncio
появилась впервые в версии 3.5 (то есть в 2015 году), хотя возможность костыльно писать асинхронные приложения и даже фреймворки, конечно, была и раньше. Соответственно у Лутца она не описана, а, как всем известно, "про что Лутц не написал, того и знать не надо".
Пишем асинхронного Телеграм-бота
2022-03-15 в 11:11, admin, рубрики: asyncio, python, telegram, telegrambot, асинхронное программирование, асинхронность, Блог компании KTSПривет! Меня зовут Александр, я руководитель бэкенд-разработки в KTS.
Сегодня я покажу, как написать своего Телеграм-бота на основе asyncio и aiohttp. Мы не будем использовать ни aiogram, ни любые другие библиотеки, а напишем бота с нуля, чтобы немного познакомиться с асинхронным программированием, корутинами и некоторыми примитивами синхронизации.
Делаем асинхронность асинхронной, разбираемся в планировщике Go, ругаем Linux
2022-01-17 в 16:40, admin, рубрики: Go, асинхронное программирование, высокая производительностьВ айтишном мире есть две весьма обсуждаемые темы:
-
Что является главным недостатком в Go;
-
Linux vs <что угодно>;
В этой статье я попробую затронуть сразу обе, а также предложить решение проблемы, которая касается первой темы.
Корутины в C++20 — что это и как с ними работать
2021-10-25 в 14:06, admin, рубрики: c++, C++20, wunder fund, wunderfund, асинхронное программирование, асинхронность, Блог компании Wunder Fund, корутины, Программирование, разработка, С++Прим. Wunder Fund: В статьи описаны базовые подходы к работе с корутинами в 20м стандарте С++, на паре практических примеров разбораны шаблоны классов для промисов и фьючеров. По нашему скромному мнению, можно было бы реализовать и поизящнее. Приходите к нам работать, если имеете сильные мнения о корутинах хе-хе.
Асинхронность в С++20. Доклад в Яндексе
2021-09-21 в 9:54, admin, рубрики: async/await, c++, асинхронное программирование, Блог компании Яндекс, Компиляторы, планировщики, примитивы, Программирование, Совершенный код— О чём я сегодня расскажу? Первое — введение в асинхронность. Далее мы рассмотрим примитивы, которые можно использовать в новом стандарте, и интеграцию с планировщиками. Также немаловажным аспектом будет являться работа со старым кодом, если мы пишем новый код с использованием нового подхода. Затем я покажу бонус, достаточно интересный и необычный. И подведём итоги того, что у нас получилось.
Читать полностью »
Асинхронщина в Rust: Стандартная библиотека и async-.await
2020-06-01 в 7:20, admin, рубрики: async/await, futures, green threads, promises, Rust, асинхронное I/O, асинхронное программирование, корутины, очередь событий, параллельное программирование, планировщик, рантайм, реактор, сетевое программирование, системное программирование, язык программирования rust
Введение
Перед вами руководство по специфике асинхронного программирования на языке Rust — точка входа в экосистему библиотек, справочник, на который можно опираться при проектировании системы и решении нетривиальных задач. К прочтению рекомендую и опытным разработчикам, и новичкам в Rust, только решивших окунуться в эту кроличью нору.
Вас ждёт целый цикл статей разного уровня сложности и погружения, затрагивающий не только асинхронное программирование, но и полезные шаблоны проектирования в Rust, такие как перенос инвариантов бизнес-логики на уровень системы типов, индуктивные вычисления на типах и декларативное программирование посредством комбинаторов.
Сегодня мы рассмотрим API стандартной библиотеки для асинхронного программирования и сам долгожданный синтаксис async/.await
.
Современный курс по Node.js в 2020
2020-01-23 в 21:18, admin, рубрики: api, javascript, JS, node.js, nodejs, YouTube, асинхронное программирование, видео, курсы, лекции, обучение программированию, Программирование, разработка, Разработка веб-сайтов, Учебный процесс в IT
Дорогие товарищи инженеры, сообщество Метархия представляет вашему вниманию современный курс по Node.js, который включает глубокий разбор всех возможностей и аспектов платформы. Основной упор делается на то, как создавать надежные высоконагруженные сервера приложений и API без привязки к конкретному фреймворку и даже протоколу, т.е. абстрагировать бизнес-логику в отдельный слой. К лекциям прикреплено множество примеров кода, демонстрирующих гибкую структуру приложений и архитектурные приемы, в том числе работу с СУБД через слой доступа к данным, создание интерактивных приложений на вебсокетах, обеспечение безопасности, Graceful shutdown, межпроцессовое взаимодействие, предотвращение утечек памяти, масштабирование и кластеризацию при помощи процессов и потоков. На текущий момент в курсе 38 лекций (около 35 и ½ часов видео), 37 репозиториев с примерами кода, 4 PDF со слайдами. Перед основной частью курса по Node.js нужно сначала освоить хоть частично курс по асинхронному программированию.
О структуре параллельных вычислений или доводы против оператора «Go»
2019-12-10 в 14:59, admin, рубрики: async, Go, golang, python, Анализ и проектирование систем, асинхронное программирование, дейкстра, конкурентное программирование, параллельное программирование, параллельные вычисления, потоки, смена парадигмы
Каждый язык, поддерживающий параллельные (конкурентные, асинхронные) вычисления, нуждается в способе запуска кода параллельно. Вот примеры из разных API:
go myfunc(); // Golang
pthread_create(&thread_id, NULL, &myfunc); /* C with POSIX threads */
spawn(modulename, myfuncname, []) % Erlang
threading.Thread(target=myfunc).start() # Python with threads
asyncio.create_task(myfunc()) # Python with asyncio
Есть много вариантов нотации и терминологии, но одна семантика — запустить myfunc
параллельно основной программе и продолжить родительский поток выполнения (англ. "Control Flow")
Полнофункциональный I-O реактор на голом Си
2019-11-14 в 15:14, admin, рубрики: C, c++, epoll, event-driven programming, IOCP, kqueue, libev, libevent, libuv, poll, select, асинхронное программирование, высокая производительность, проактор, реактор, Сетевые технологии, системное программирование
Введение
I/O реактор (однопоточный цикл событий) — это паттерн для написания высоконагруженного ПО, используемый во многих популярных решениях:
В данной статье мы рассмотрим подноготную I/O реактора и принцип его работы, напишем реализацию на меньше, чем 200 строк кода и заставим простой HTTP сервер обрабатывать свыше 40 миллионов запросов/мин.