Отличие Data Race от Race Condition Data Race — это многопоточная ситуация, при которой два или более потока одновременно работают с одной переменной, причём хотя бы один поток выполняет запись, а необходимая…
Future и CompletableFuture: отличия Future — основной интерфейс для представления асинхронного результата в Java Concurrency. С его помощью можно получить итог операции или отменить её выполнение. При этом для…
Архитектура: Kafka представляет собой распределённый журнал сообщений (log), а RabbitMQ — брокер очередей Модель доставки: Kafka передаёт поток данных и долго хранит сообщения; RabbitMQ использует push-модель и…
Сравнение gRPC: bidirectional stream и unary RPC unary RPC — один запрос и один ответ bidirectional stream — обмен сообщениями в двух направлениях при использовании bidirectional stream клиент и сервер одновременно…
Асинхронные операции программирования Detached task выполняется независимо от родительского потока Обычная task запускается и контролируется родительским кодом, который может ожидать её завершения Detached task не…
Отличия race condition и data race область: конкурентность, многопоточность race condition — это ситуация, в которой результат определяется порядком выполнения потоков data race — разновидность race condition,…
Разница между runtime.Goexit() и os.Exit() и случаи применения runtime.Goexit(): прекращает работу текущей goroutine, не затрагивая остальные os.Exit(): сразу завершает весь процесс, не выполняя defer Goexit()…
Ключевое различие асинхронности и многопоточности асинхронность работает в одном потоке и запускает операции неблокирующе многопоточность задействует несколько потоков для параллельного выполнения асинхронная модель…
Чем горутины отличаются от потоков ОС и как работает планировщик Go? горутина — легковесный поток, которым управляет runtime Go, а не операционная система создание и завершение горутин требуют минимальных ресурсов:…
Ключевое различие concurrent и serial очередей Serial очередь обрабатывает задачи последовательно — каждую следующую только после предыдущей Concurrent очередь позволяет запускать задачи параллельно, чтобы они…
dispatch_sync и dispatch_async dispatch_sync выполняет вызов синхронно: текущий поток блокируется до окончания задачи dispatch_async выполняет вызов асинхронно: управление возвращается сразу, а задача помещается в…