Что делает Thread#join в Ruby?
Ожидание завершения потока, результат join, тайм-аут и получение значения через Thread#value.
Читать ответПодготовка к интервью
Разбирайте реальные вопросы, сверяйтесь с подробными ответами и готовьтесь по технологиям и компаниям.
Проверьте, насколько резюме подходит выбранной позиции, и получите рекомендации по улучшению.
Каталог
Ожидание завершения потока, результат join, тайм-аут и получение значения через Thread#value.
Читать ответБазовый шаблон sync.WaitGroup: Add до запуска, defer Done внутри, Wait перед чтением результатов. Как избежать гонок при сборе данных.
Читать ответКогда synchronized недостаточно для предотвращения гонки потоков? синхронизация выполняется с помощью мониторного замка механизм действует на уровне одного объекта (монитора) недостаточен при зависимостях между…
Читать ответПараллелизм в ConcurrentHashMap и Collections.synchronizedMap обе структуры обеспечивают потокобезопасный доступ к Map Collections.synchronizedMap представляет собой обёртку с синхронизацией всего объекта, поэтому…
Читать ответСравнение Deadlock и Livelock Область: конкурентность и синхронизация потоков Deadlock: потоки навсегда ожидают ресурсы и остаются заблокированными Livelock: потоки продолжают работу, но бесконечно изменяют состояние…
Читать ответSemaphore и SemaphoreSlim синхронизация потоков в .NET Semaphore — системный объект ядра ОС для межпроцессной синхронизации SemaphoreSlim — облегчённый механизм, работающий внутри одного процесса Semaphore потребляет…
Читать ответМногопоточность и асинхронный код в проектах Многопоточность применял для увеличения степени параллелизма и ускорения выполнения задач. Для синхронизации доступа к разделяемым ресурсам и защиты от гонок данных…
Читать ответКак в Go передавать данные между горутинами с помощью каналов и sync? - Go поддерживает конкурентность на основе goroutine - Каналы (channels) служат структурированным механизмом обмена данными - Через каналы…
Читать ответобласть: конкурентность в Go базовый механизм: goroutines (легковесные потоки) синхронизация: с помощью channels — обмен данными и сигналами между goroutines для реализации блокировок и мьютексов используется пакет…
Читать ответМеханизм синхронизации Java для управления потоками Каждый из этих методов можно вызывать только внутри блока synchronized wait() — поток освобождает монитор объекта и переходит в состояние ожидания notify() — выводит…
Читать ответКак исправить использование CountDownLatch с неатомарным счётчиком? проблема: счётчик не является атомарным, поэтому возникают состояния гонки решение 1: использовать AtomicInteger вместо обычного счётчика (если это…
Читать ответdeadlock: взаимная блокировка ресурсов livelock: бесконечное изменение состояний без продвижения исключать циклические зависимости между ресурсами задавать единый порядок захвата блокировок (lock ordering)…
Читать ответ