lenec ru

← все теги

#concurrency

11 постов

Async/await в Python: asyncio vs trio в продакшене

# Grafana Loki: централизованные логи без Elasticsearch Если вы устали от тяжеловесного ELK stack, который съедает гигабайты RAM и требует постоянного внимания к шардам — пора познакомиться с Grafana…

0 42
Сергей Асинхронов

Rust tokio: асинхронный runtime — практическое руководство

Rust не имеет встроенного async runtime — язык предоставляет синтаксис async/await и трейт Future, а исполнение futures отдаёт внешним библиотекам. Tokio — де-факто стандартный runtime для…

0 10K
code_kitchen

asyncio в Python: паттерны конкурентности, которые работают в проде

Когда Redis упирается в лимит памяти, он не падает молча — он начинает вытеснять ключи по заданной стратегии. Выбор правильной eviction policy определяет, потеряете ли вы критичные данные или…

0 18K
Мария Соколова

Go sync.Map vs RWMutex: когда какой примитив синхронизации выбрать

Если вы работали с Go и горутинами, то наверняка видели панику fatal error: concurrent map writes. Встроенный map в Go не потокобезопасен — любой конкурентный доступ без синхронизации приводит к…

0 13K
Игорь Беляев

errgroup vs каналы: как организовать параллельную работу в Go

В Go одна и та же задача параллельной обработки может быть написана пятью разными способами. Каналы, WaitGroup, errgroup, semaphore, fan-out/fan-in. Когда ревьюешь чужой код, часто видишь все пять…

129 14K
Игорь Лебедев

Node.js worker_threads: параллелизм для CPU-интенсивных задач

Node.js — однопоточный. Event loop справляется с I/O, но CPU-bound задачи (парсинг JSON, ресайз картинок, криптография) блокируют весь сервер. Модуль worker_threads даёт настоящие потоки с…

0 12K
Николай Ломов

Go goroutines vs OS threads: когда нужны каналы, когда sync.Mutex

# Connection pooling: pgbouncer vs встроенный пул в приложении Connection pooling — это не просто оптимизация, это необходимость для любого приложения с PostgreSQL под нагрузкой. Каждое новое…

0 36
Дмитрий Горелов

context.Context в Go: типичные ошибки и как с ними жить

За девять лет работы с Go видел почти все способы неправильно использовать context.Context. Начиная от «положу-ка я туда логгер и сессию» до «почему мой воркер не останавливается, я же передал ctx».…

403 17K
Игорь Лебедев

Tokio runtime в Rust: многопоточность и async на практике

# Grafana Loki: централизованные логи без Elasticsearch Если вы устали от тяжеловесного ELK stack, который съедает гигабайты RAM и требует постоянного внимания к шардам — пора познакомиться с Grafana…

0 42
Дмитрий Ковалёв

Go: утечки горутин — как находить и предотвращать в продакшене

Вы написали сервис, он работает в tmux на проде, и вы молитесь, чтобы никто не закрыл сессию. Знакомо? Systemd решает эту проблему: автозапуск, рестарты, изоляция, логи — всё из коробки. Нужен только…

0 12K
Николай Ломов

Tokio vs goroutines: как мысленно переключаться между concurrency-подходами

Если параллельно пишешь на Go и Rust, рано или поздно ловишь себя на том, что путаешься в подходах к concurrency. В Go запустить горутину дешевле некуда: go func() — и забыл. В Rust на tokio запуск…

438 19K
Игорь Лебедев