RU

[Перевод] Fire‑and‑forget в Go: практический гайд по управляемым фоновым задачам

У go func() есть неприятная особенность: вместе с результатом выполнения легко потерять контроль над самой задачей. Разберём, как пропускать такую р…

Goгорутиныконкурентностьмногопоточностьканалыфоновые задачиворкерыконтекстпроизводительностьархитектура приложений
Habr
RU

PPTX → озвученный MP4: как устроен пайплайн, который не ждёт сам себя

Есть презентация и текст лекции — нужен MP4, где каждый слайд висит ровно столько, сколько звучит озвучка. Прототип собирается за час, а дальше начи…

pythonceleryffmpeglibreofficettsмногопоточностьas_completedвидеогенерацияsqlalchemypdftoppm
Habr
RU

Наносервисы — как довести распределенные системы до логического конца

Мы рассмотрим новый фреймворк Areg SDK, идея которого, по моему мнению, может задать новый стандарт в распределенных системах. От идеи микросервисов…

c++распределенные системымногопоточность
Habr
RU

Rust в высоконагруженной видеоаналитике: кейс «Фалькон Тех»

Системы видеоаналитики обрабатывают терабайты видеоданных в реальном времени — от распознавания номеров до детекции инцидентов на дорогах. В та…

Rustbackend-разработкаbackendвысоконагруженные системымногопоточностьуправление памятью
Habr
RU

Я думал, что 16 воркеров ускорят обработку задач в 16 раз. Но что‑то пошло не так

Недавно я написал свою систему распределённой обработки задач. Сначала это был учебный проект. Мне хотелось лучше разобраться в очередях з…

pythonceleryworkeroptimisationbackendмногопоточностьасинхронностьтестированиеdockerраспределенные системы
Habr
RU

Добавили потоков, стало медленнее: разбираемся с ложным разделением кеш‑линии

Добавили потоков, а программа стала медленнее? Причина может скрываться в ложном разделении кеш‑линий: потоки работают с разными пере…

ложное разделение кеш-линииfalse sharingмногопоточностькеш процессоракеш-линиякогерентность кешапроизводительностьperfNUMAвыравнивание памяти
Habr
RU

Родитель засыпал навсегда: чего Rust не делает за вас в ядре ОС

Я пишу ядро операционной системы на Rust. Не потому что собираюсь заменить Linux, а потому что мне интересно, что получится, если закладывать безопа…

rustядрооперационные системымногопоточностьunsafeконкурентность
Habr
RU

OSDEV: Itanium часть 2: One-time Construction API и сигнлтоны Майерса

Приветствую! В этой части мы рассмотрим что такое guard variables и как под капотом работают синглтоны Майерса. Цель конечно у меня другая, я просто…

atomicitaniumabiosdevsingletonпаттерныпаттерны программированияпаттерн проектирования синглтонсингтонмногопоточность
Habr
RU

Создаем потокобезопасную очередь с условными переменными: «академический» пример против реальности

Представьте, что вы едете в ночном поезде. Чтобы гарантированно выйти на нужной станции, придется не спать всю ночь и внимательно отслеживать остано…

с++очередимьютексыconsumerзадачамногопоточностьproducer
Habr
RU

Зоопарк каналов в Rust: какой выбрать и как не споткнуться

Каналы - механизм передачи данных между потоками или асинхронными задачами. Идея простая: один конец отправляет сообщения (отправитель), другой их п…

rustканалыflumetokiocrossbeamkanalмногопоточностьchannelssyncасинхронность
Habr
RU

Погружение в многозадачность Python: процессы, потоки, GIL и асинхронность

Многозадачность кажется простой темой, пока дело не доходит до Python и GIL. В статье разбирается: чем процесс отличается от программы, зачем нужны…

pythongilмногопоточностьмногопроцессностьasyncioконкурентностьпараллелизмgevent
Habr
RU

async‑profiler в production: CPU, аллокации, lock contention и чтение flame graph

Профилирование Java‑приложений в production часто упирается не в отсутствие инструментов, а в их ограничения: CPU горит в&n…

async-profilerJavaJVMпрофилированиеflame graphпроизводительностьаллокациимногопоточностьlock contentionlatency
Habr
RU

Project Loom: Virtual Threads, Scoped Values и preview #7 Structured Concurrency

Project Loom меняет привычную модель конкурентности в Java: virtual threads делают потоки дешевле, Scoped Values дают аккуратную передачу контекста,…

JavaProject LoomVirtual ThreadsScoped ValuesStructured ConcurrencyJDK 27конкурентностьмногопоточностьThreadLocalOpenJDK
Habr
RU

Сравнение моделей конкурентности JVM языков: Треды, Пулы и Structured Concurrency

Вы пробовали что-нибудь кроме new Thread() ? Конечно пробовали: Future ! И всё ?! Разберемся с разными моделями конкурентности в Java, Kotlin, Scala…

JavaJVMмногопоточностьThreadThread PoolExecutorServiceVirtual ThreadsProject LoomStructured ConcurrencyBlocking IO
Habr
RU

Невидимый враг многопоточности: False Sharing и кэш-линии процессора

Представьте задачу: мы пишем высоконагруженный сетевой сервис и нам нужно считать входящие пакеты. Чтобы не блокировать потоки мьютексами, мы решаем…

false sharingмногопоточностьоптимизациякэш процессораlock-freeкэш-линияпроизводительность