#%D0%BA%D0%BE%D1%80%D1%83%D1%82%D0%B8%D0%BD%D1%8B

2025-05-11

Корутины в C++20: архитектура и практическое применение

Корутины в C++20 открывают новые возможности для асинхронного программирования, но они также могут привести к ошибкам, связанным с управлением памятью и синхронизацией. Здесь о том, какие проблемы могут возникнуть и чего ожидать от будущих обновлений корутин в C++.

habr.com/ru/articles/908386/

#p2300 #корутины #coroutines #c++ #асинхронность #сопрограммы #stackless #promise_type #co_await

2025-03-27

Корутины Kotlin: быстрый старт

Мы привыкли учиться от простого к сложному, от аксиом к теоремам, от базовых понятий — к сложным концепциям, от «Hello, world!» — к многомодульным приложениям. Но библиотеке Kotlin Coroutines в этом смысле не повезло. И документация, и немногочисленные (особенно на русском языке) учебные материалы с первых страниц оглушают читателя потоком понятий, которые объясняются друг через друга. Приблизительно так: Job — это часть контекста, а контекст — это контейнер, содержащий Job . Раскрутить этот клубок бывает непросто. Поэтому я пытаюсь рассказать о корутинах по традиционным схемам обучения, начиная от самых простых понятий и постепенно усложняя рассказ. Мне кажется, что все понятия нужно объяснять на примерах — так теория лучше укладывается в голове.

habr.com/ru/articles/894892/

#Kotlin #корутины

2025-03-25

Расследуем дело асинхронного программирования с Леонидом Каневским

История развития асинхронного программирования в языке Swift. Можно относиться к этому как к расследованию нераскрытого дела. Начать расследование

habr.com/ru/companies/cleverte

#корутины #ios_developer #swift__разработка #асинхронноепрограммирование #асинхронное_программирование

2024-12-05

Синтаксис, синглтон и смертельный ромб в С++: взгляд опытного разработчика на C

Давайте знакомиться: меня зовут Анатолий Семятнёв, я и моя команда разрабатываем ПО для опорных сетей 5G в YADRO. В IT-сфере работаю давно, и мой опыт в основном связан с языком С: занимался Board Support Package (BSP) и драйверами, много работал с операционной системой QNX. До того, как начал полноценно работать на С++, сталкивался с языком в нулевые, писал на С++98. Тем не менее все это время я краем глаза поглядывал, что происходит в С++, и хотел вернуться к программированию на этом языке. Читал книги, делал пет-проекты, смотрел записи конференций и митапов по С++. А когда пришел в YADRO, стал писать на С++. Мне с ходу дали большую фичу для имплементации, я писал много кода, и получал комментарии от коллег. В этом материале собрал все, что изучил или вспомнил по итогам код-ревью. Что рассмотрим в статье: • Ключевые концепции — explicit, final, default, string — и как их использовать. • Инициализацию мемберов с помощью пустого брейс-листа. • Синглтон Майерса в корутинах. • «Смертельный ромб» и все, что связано с виртуальным наследованием.

habr.com/ru/companies/yadro/ar

#с++_программирование #с++ #синглтон #корутины #синтаксис #explicit #final #default #string #виртуальное_наследование

2024-11-21

Гайд по реализации паттерна Composite в Kotlin с sealed-классами и корутинами

Привет, Хабр! Сегодня рассмотрим, как реализовать паттерн Composite в Kotlin с помощью sealed-классов и корутин . Если у вас есть сложная система с кучей объектов — простых и составных — и вы хотите управлять ими, не теряя асинхронности, то этот гайд для вас.

habr.com/ru/companies/otus/art

#kotlin #паттерн #composite #корутины

2024-10-15

Корутины: stackful vs stackless

В этой статье я хочу объяснить разницу между stackless и stackful корутинами: чем они отличаются, какие у них плюсы и минусы, а также в общих чертах рассказать, как в некоторых языках программирования реализована многопоточность. Я стараюсь писать статьи простым и понятным языком, чтобы их мог понять как можно больший круг читателей. Поэтому в тексте будут сделаны упрощения.

habr.com/ru/articles/850970/

#корутины #stackles #stackfull #fibres #green_thread #зеленые_треды #многопоточность #async/await #горутины #go

2024-08-27

Kotlin Coroutines. От А до Я

Полный разбор корутинного мира с нуля, который может послужить отличной шпаргалкой на собеседовании ! Разберем разницу между многопоточностью и асинхронностью ; раскроем все основные понятия корутин, параллельно ссылаясь на исходники kotlinx.coroutines; посмотрим их применение на практике и в конце напишем свой собственный CoroutineScope. Let's go

habr.com/ru/articles/838974/

#Kotlin #coroutine #coroutines #корутины #асинхронность #асинхронное_программирование #dispatcher #launch #async #deffered

2024-07-31

Как мы написали конкурентные структуры данных на C++ и научились их верифицировать

Привет! В команде ВКонтакте мы переписываем рантайм движков баз данных — они становятся быстрее, надёжнее, а ещё с новым рантаймом проще писать код. Однако есть нюанс: в новом рантайме много конкурентных структур данных, в том числе нужных для работы с корутинами из С++20. Появляется интересная задача — проверять корректность этих конкурентных структур данных до выхода кода в продакшен. Для решения этой задачи команда ВКонтакте вместе со студентами из университетов ИТМО и СПбГУ работала над научно-исследовательским проектом — верификацией конкурентных структур данных на языке C++. В этой статье подробно расскажем, как мы в рамках проекта проверяли корректность наших конкурентных структур данных и заодно исправили найденную в нашем новом рантайме ошибку.

habr.com/ru/companies/vk/artic

#concurrency #корутины #каналы #верификация #c++ #многопоточность #параллельное_программирование #tla+

2024-06-01

Разбираемся с coroutine в Kotlin — 3

Прошлая статья была про реализацию функции на языке Си, которая может быть приостановлена и возобновлена. В этой статье придумаем задачу, набросаем примерные решения и в конце сравним корутины с другими способами. Примеры и код будут условными и нужны для понимания идеи и различий. Код будет на языке, похожим на Kotlin...

habr.com/ru/articles/818847/

#kotlin #coroutines #coroutine #корутины #сравнение

2024-05-25

Разбираемся с coroutine в Kotlin — 2

Первое упоминание корутин дано в статье 1963 года (1) и о ней первая часть . После прочтения статьи, сказать честно, я не очень понял идею корутин и искал дополнительную информацию. Понадобилось четыре статьи: статья Конвея, глава из книги Дональда Кнута (2) и две статьи Саймона Тэтхема (3, 4) и некоторое время, чтобы глубже понять идею. После прочтения статьи Конвея и до прочтения Кнута казалось, что разница между вариантом программа-подпрограмма и две корутины почти косметическая. Казалось, что программы отличаются реализацией. Однако разница более существенная, нужно отказаться от идеи писать программы, в которых есть подпрограммы, а представлять программу как набор независимых модулей, которые могут обмениваться данными. Назад в прошлое

habr.com/ru/articles/817047/

#корутины #история_it #конвей #тэтхем #реализация #си #coroutines

2024-05-01

Суслик и пингвин: кодим на Go под Linux

Язык ядра Linux, его модулей и утилит написаны на языке C. Хоть он и является старым языком и прародителем многих других, но его до сих пор используют. В экосистему линукса постепенно проникают и более молодые языки — например, Rust. Но сегодня мы поговорим об детище Google — GoLang. Я много пишу про этот замечательный язык и в этой статье предлагаю изучить основы системного программирования на Go, мы изучим как работать с ядром, юзерспейсом линукса. Расскажу об стандарте POSIX, а также узнаем, как сочетать C и Go-код.

habr.com/ru/articles/811587/

#асинхронность #корутины #горутины #сопрограммы #open_source #linux #go #golang #низкоуровневое_программирование #мультипоточность #параллельность #C #C++

2024-04-12

Жизнь без линтеров и расчет цены абстракции: материалы для разработчиков на С++

В марте мы собирались на митапе по С++ в Санкт-Петербурге. Для всех, кто не смог присоединиться к встрече, подготовили записи докладов и дискуссии с экспертами из YADRO, VK и Kaspersky, а также создателем Sprinx Андреем Аксёновым. Почему стоит сохранить подборку в закладки: • Руководитель отдела компиляторов научит рассчитывать цену абстракции для функций и других сущностей с учетом ваших ресурсов и возможностей компилятора. • Эксперт из PVS-Studio покажет, почему линтеры не всегда подходят для поиска ошибок и какое решение использовать вместо них, чтобы не навредить безопасности сервиса. • Инженеры с многолетним опытом работы на С++ поделятся опытом проведения код-ревью — возможно, вы найдете в их практиках что-то полезное или просто посмеетесь вместе с участниками дискуссии.

habr.com/ru/companies/yadro/ar

#абстракции #функции #c++ #корутины #линтеры #кодревью #дискуссия #ошибки_в_коде #митап

2024-02-27

Митап по С++ в Питере и онлайн: цена абстракции, статистический анализ и дискуссия о код-ревью

20 марта собираемся на бесплатном митапе в Санкт-Петербурге и онлайн. Константин Владимиров расскажет о цене абстракции, а разработчик из команды телекома YADRO Владимир Леонтьев на примере инструмента генерации RPC-серверов покажет, как написать кодогенератор. В конце встречи создатель Sprinx Андрей Аксенов, разработчик VK AdTech Станислав Юрченко, техлид Kaspersky Александр Еналдиев и разработчик YADRO Илья Казаков вместе с гостями и зрителями митапа обсудят тонкости код-ревью. В этом материале делимся программой митапа. Регистрация уже открыта —

habr.com/ru/companies/yadro/ar

#линтеры #абстракции #дискуссия #кодревью #аналитика #корутины #ranges

Client Info

Server: https://mastodon.social
Version: 2025.04
Repository: https://github.com/cyevgeniy/lmst