Аккаунт Войти / Регистрация
Тема
Размер текста

Golang:

« 1 2 3 4 5 »
5 / 5 · 54
Основы параллельности в Go для Java-разработчиков | Сoncurrency часть 1 Если вы Java-разработчик, привыкший к потокам и ExecutorService, Go предлагает более лёгкий и удобный подход к параллельной обработке — goroutine и каналы. В этой статье мы разберём ключевые концепции Go concurrency и сравним их с Java-аналогами. 1. Goroutine vs Thread Goroutine — это лёгкая единица…
Основы параллельности в Go для Java-разработчиков | Сoncurrency часть 1 Если вы Java-разработчик, привыкший к потокам и ExecutorService, Go предлагает более лёгкий и удобный подход к параллельной обработке — goroutine и каналы. В этой статье мы разберём ключевые концепции Go concurrency и сравним их с Java-аналогами. 1. Goroutine vs Thread Goroutine — это лёгкая единица…
Go vs. Java - Comparing Memory Models - Part 2: Atomic Operations, Preemption, Defer/Finally, Context, Escape Analysis, GC, False Sharing Atomic operations Atomic operations ensure correct execution of variable operations without race conditions, guaranteeing a happens-before between reads and writes. Go example: import "sync/atomic" var counter int32 func increment() { atomic.AddInt32(&counter, 1) // atomic increment } Java examp…
Go vs Java - Сравниваем модели памяти - часть 2: atomic operations, preemption, defer/finally, context, escape analysis, GC, false sharing Atomic operations Atomic операции обеспечивают корректное выполнение операций с переменными без гонок, гарантируя happens-before между чтением и записью. Go пример: import "sync/atomic" var counter int32 func increment() { atomic.AddInt32(&counter, 1) // атомарное увеличение } Java пример: impor…
Go vs Java - сравнение модели памяти: happens-before, visibility, reorder, synchronization events, write/read barriers Модель памяти — это слой между программой и процессором. Современные CPU агрессивно оптимизируют выполнение: инструкции могут переставляться, данные могут храниться в кешах ядер, а операции могут выполняться спекулятивно. Без строгих правил два потока могли бы видеть совершенно разные значения одной…
Go vs Java - comparison of memory models: happens-before, visibility, reorder, synchronization events, write/read barriers Memory model is a layer between the program and the processor. Modern CPUs aggressively optimize execution: instructions may be reordered, data may be stored in core caches, and operations may be performed speculatively. Without strict rules, two threads could see completely different values of the …
« 1 2 3 4 5 »
5 / 5 · 54
Отправляя email, вы принимаете условия политики конфиденциальности

Полезные статьи:

Соглашение об использовании сайта Lesnih.com
1. ОБЩИЕ ПОЛОЖЕНИЯ 1.1. Настоящее Соглашение об использовании (далее — «Соглашение») регулирует отношения между пользователем (далее — «Пользователь») и сервисом Lesnih.com(далее — «Сервис»). 1.2. Исп…
Дата вступления в силу: 23 октября 2025 г. Настоящая Политика конфиденциальности (далее — «Политика») описывает, как сайт Lesnih.com (далее — «Сайт», «Сервис», «Мы») собирает, использует, хранит и защ…
Переменные и Константы в Java
Переменные в Java — понятие, типы, область видимости и константы Всем привет! С вами Виталий Лесных. В этом уроке разберём, что такое переменные в Java, зачем они нужны, какие бывают типы, как объявля…

Новые статьи:

Конкурентность — это не про «запустить много потоков». Это про договорённости между ними. Представь кухню ресторана: — повара (потоки / горутины) — заказы (задачи) — и главный вопрос: как они коорди…
История начинается не с академической теории, а с типичной production-проблемы. Представьте сервис: 48 CPU 300+ потоков нагрузка 200k операций в секунду много shared state Команда использует обы…
Когда HashMap начинает убивать продакшн: инженерная история ConcurrentHashMap
Представьте обычный продакшн-сервис. 32 CPU сотни потоков кэш конфигурации / сессий / rate limits десятки тысяч операций в секунду И где-то внутри — обычный Map. Сначала всё выглядит безобидно. Map&…