Конкурентность
Гонки, дедлоки и утечки горутин на Go, Java и Kotlin, как на секциях бэкенда. Отмечаете строки с ошибками и отвечаете, что выведет программа.
22 задачи на конкурентность: 4 — из отчётов кандидатов и блогов компаний, 18 — наши, на задачах компаний (Яндекс · Т‑Банк · Сбер · Ozon · Авито · Wildberries · Альфа-Банк · МТС). Источник — у каждой.
Условия и примеры открыты всем. Чтобы решать, нужен вход: подходы, черновики и повторы хранятся в профиле.
Регистрация Войти- 1 Round-robin балансировщик с health-checkGo · atomic, RWMutex, гонка данных, утечка соединений · обзор транскриптов интервью: Яндекс, балансировщик на Go Средняя ~14 мин Не начата 3 энергии за подход
- 2 Перевод между счетами: две блокировкиJava · synchronized, дедлок, порядок захвата, check-then-act · Т‑Банк: секция Java, многопоточность — исправить код Средняя ~12 мин Не начата 3 энергии за подход
- 3 Переводы в Go: мьютекс в счётеGo · sync.Mutex, копирование мьютекса, дедлок, defer · на задачах Альфа-Банка: переводы между счетами Сложная ~20 мин Не начата 4 энергии за подход
- 4 Счётчик просмотров объявленийGo · map, конкурентная запись, sync.Mutex · на задачах Авито: статистика объявлений Лёгкая ~8 мин Не начата 2 энергии за подход
- 5 Резерв остатка товара на складеGo · RWMutex, check-then-act, потерянное обновление · на данных Ozon: склады и заказы Средняя ~12 мин Не начата 3 энергии за подход
- 6 Выписка по счетам: WaitGroup и каналGo · WaitGroup, канал, fan-in, обработка ошибок · Т‑Банк: секция Go, асинхронность и примитивы синхронизации Средняя ~12 мин Не начата 3 энергии за подход
- 7 Отправка push о списаниях: select с defaultGo · select, busy loop, остановка горутины, гонка данных · на задачах Т‑Банка: уведомления о списаниях Лёгкая ~8 мин Не начата 2 энергии за подход
- 8 Пул воркеров для рассылки pushGo · worker pool, WaitGroup, закрытие каналов, deadlock · на задачах Сбера: push-уведомления в СберБанк Онлайн Сложная ~20 мин Не начата 4 энергии за подход
- 9 Загрузка фото карточки товара через errgroupGo · errgroup, context, гонка на слайсе, отмена · обзор транскриптов интервью: Wildberries, найди баги в конкурентном коде Сложная ~18 мин Не начата 4 энергии за подход
- 10 Рассылка SMS с ограничением параллельностиGo · семафор на канале, гонка, горутины, ограничение нагрузки · на задачах МТС: SMS-рассылки абонентам Средняя ~12 мин Не начата 3 энергии за подход
- 11 Таймаут геокодера и утечка горутинGo · утечка горутин, небуферизованный канал, context, таймаут · на задачах Яндекса: геокодер для такси Лёгкая ~8 мин Не начата 2 энергии за подход
- 12 Слияние событий складов в один каналGo · каналы, закрытие канала, fan-in, panic · на данных Ozon: склады и заказы Лёгкая ~8 мин Не начата 2 энергии за подход
- 13 Выгрузка статистики кампании в CSVGo · context, отмена, таймаут, потоковый ответ · на задачах Яндекса: статистика рекламных кампаний Средняя ~12 мин Не начата 3 энергии за подход
- 14 Счётчик избранного на ConcurrentHashMapJava · ConcurrentHashMap, атомарность, merge, автоупаковка · на задачах Авито: избранные объявления Лёгкая ~8 мин Не начата 2 энергии за подход
- 15 Пул потоков на каждый запросJava · ExecutorService, shutdown, утечка потоков, Future.get · на задачах Сбера: лимиты по картам Лёгкая ~8 мин Не начата 2 энергии за подход
- 16 Оформление заказа на CompletableFutureJava · CompletableFuture, exceptionally, ForkJoinPool, обработка ошибок · на данных Ozon: корзина и оформление заказа Средняя ~14 мин Не начата 3 энергии за подход
- 17 ThreadLocal в пуле обработки переводовJava · ThreadLocal, пул потоков, remove, исключения в submit · на задачах Сбера: переводы и аудит операций Средняя ~12 мин Не начата 3 энергии за подход
- 18 Очередь сборки заказов на wait и notifyJava · wait/notify, spurious wakeup, notifyAll, ограниченная очередь · на задачах Wildberries: сборка заказов на складе Сложная ~20 мин Не начата 4 энергии за подход
- 19 Кэш курсов валют с double-checked lockingJava · double-checked locking, volatile, безопасная публикация, HashMap · на задачах Альфа-Банка: обмен валюты в приложении Средняя ~14 мин Не начата 3 энергии за подход
- 20 Тарификация звонков в parallelStreamJava · parallelStream, SimpleDateFormat, HashMap, ArrayList, потокобезопасность · на задачах МТС: биллинг звонков Средняя ~14 мин Не начата 3 энергии за подход
- 21 Модерация фото: GlobalScope и runBlockingKotlin · корутины, GlobalScope, runBlocking, структурная конкурентность · на задачах Авито: модерация объявлений Средняя ~12 мин Не начата 3 энергии за подход
- 22 Синхронизация остатков, которую нельзя остановитьKotlin · корутины, отмена, CancellationException, Thread.sleep, Mutex · на задачах Wildberries: остатки продавцов Сложная ~20 мин Не начата 4 энергии за подход
По этим фильтрам задач нет.
«Подход» — сколько энергии спишется при старте. С подпиской — 0.Время — медиана до зачёта у решивших или оценка автора.