Concurrency
Многопоточность в Go и Java: типы задач и паттерны решения
Многопоточность — это не просто «запустить миллион потоков и пусть считают». Это искусство эффективно использовать ресурсы процессора и памяти, безопасно обрабатывать данные и правильно распределять задачи. В Go и Java многопоточность используется для разных целей: ускорение вычислений, работа с в...
Разбираем: Rate‑limiter, non‑blocking operations, scheduler Go vs Java | Concurrency часть 4
Эта статья посвящена пониманию принципов работы с конкурентностью и синхронизацией в Go и Java. Мы рассмотрим ключевые подходы, такие как rate‑limiter, неблокирующие операции и планирование задач, сравним их реализацию и философию в двух языках. Это поможет Java-разработчику быстро освоить Go и, нао...
Асинхронность и реактивность в Java: CompletableFuture, Flow и Virtual Threads
В современном Java-разработке есть три основных подхода к асинхронности и параллельности: CompletableFuture — для одиночных асинхронных задач. Flow / Reactive Streams — для потоков данных с контролем скорости (backpressure). Virtual Threads / Loom — для масштабируемой параллельности без блокировок....
Асинхронность в Java: Future, CompletableFuture и Structured Concurrency
Java изначально была ориентирована на многопоточность и параллельные вычисления. Со временем появились разные способы работы с результатами асинхронных задач — от классического Future до современных Structured Concurrency. Разберём основные механизмы, их плюсы, минусы и когда их использовать. 1. Fut...
Понимаем многопоточность в Java через коллекции и атомики
1️⃣ HashMap / TreeMap / TreeSet (не потокобезопасные) HashMap: Структура: массив бакетов + связные списки / деревья (для коллизий). Под капотом: при put/remove происходит модификация массива бакетов и, возможно, переупорядочивание цепочек. Проблема при многопоточности: два потока могут одновременно...
Современный подход к параллелизму в Java - Fork/Join Framework, CompletableFuture и виртуальные потоки (Project Loom)
Предисловие Мир программного обеспечения уже давно перестал быть спокойным океаном: сегодня это бурная экосистема, где каждая миллисекунда отклика приложения может стоить компании клиентов, репутации или денег. Современные бизнес-системы — интернет-магазины, банковские платформы, аналитические серви...
Полезные статьи:
Представьте обычный продакшн-сервис. 32 CPU сотни потоков кэш конфигурации / сессий / rate limits десятки тысяч операций в секунду И где-то внутри — обычный Map. Сначала всё выглядит безобидно. Map&...
В этой статье мы разберём ключевые подходы к работе с параллелизмом и синхронизацией в Go и Java. Мы сравним, как одни и те же задачи решаются на этих языках, покажем идиомы, паттерны и лучшие практик...
В этой статье мы собрали ключевые low-level механизмы Go, которые чаще всего вызывают вопросы у разработчиков, приходящих из Java. Мы рассмотрим: unsafe.Pointer, выравнивание структур, арифметику указ...
Новые статьи:
Конкурентность — это не про «запустить много потоков». Это про договорённости между ними. Представь кухню ресторана: — повара (потоки / горутины) — заказы (задачи) — и главный вопрос: как они коорди...
История начинается не с академической теории, а с типичной production-проблемы. Представьте сервис: 48 CPU 300+ потоков нагрузка 200k операций в секунду много shared state Команда использует обы...
Представьте обычный продакшн-сервис. 32 CPU сотни потоков кэш конфигурации / сессий / rate limits десятки тысяч операций в секунду И где-то внутри — обычный Map. Сначала всё выглядит безобидно. Map&...