Блокирует ли чтение из пустого канала выполнение в Go?
Открытый, закрытый и nil-канал ведут себя по-разному. Блокируется горутина; select позволяет добавить отмену или неблокирующую ветку.
Читать ответПодготовка к интервью
Разбирайте реальные вопросы, сверяйтесь с подробными ответами и готовьтесь по технологиям и компаниям.
Проверьте, насколько резюме подходит выбранной позиции, и получите рекомендации по улучшению.
Каталог
Открытый, закрытый и nil-канал ведут себя по-разному. Блокируется горутина; select позволяет добавить отмену или неблокирующую ветку.
Читать ответРешение fan-in через отдельные горутины и WaitGroup. Выход закрывается только после всех отправок, а ok выводится после завершения range.
Читать ответКак выбрать между периодическим сигналом, однократным срабатыванием и распространением отмены; почему ticker не заменяет Context автоматически.
Читать ответКак TCMalloc ускоряет частые выделения памяти с помощью кэшей и размерных классов, чем отличаются per-CPU и per-thread режимы и почему выигрыш нужно измерять.
Читать ответРазбиение вставки на пакеты, явная передача задач исполнителю, ограничение очереди и параллелизма, обработка ошибок и ожидание завершения.
Читать ответКогда synchronized недостаточно для предотвращения гонки потоков? синхронизация выполняется с помощью мониторного замка механизм действует на уровне одного объекта (монитора) недостаточен при зависимостях между…
Читать ответВ каких случаях следует использовать Hash-индексы? Предназначены для индексации при точном поиске ключей Дают доступ за константное время O(1) Не подходят для диапазонных запросов и сортировки Наиболее эффективны при…
Читать ответВ каких случаях следует использовать корутины? организация лёгкой конкуренции выполнение асинхронных операций без блокировки запуск параллельных задач с меньшими издержками, чем у потоков удобная работа в реактивном…
Читать ответконтекст: Android, компоненты приложения По умолчанию Service выполняется в главном (UI) потоке приложения Отдельный поток автоматически не создаётся Тяжёлые операции могут заблокировать UI Для фоновых задач применяют…
Читать ответКлючевое отличие Atomic-классов от synchronized Atomic-классы выполняют операции без блокировок В основе их работы лежит CAS (Compare-And-Swap) Они обеспечивают атомарность отдельных операций synchronized использует…
Читать ответMutex и RWMutex: эксклюзивная запись и параллельное чтение синхронизация потоков в многопоточных приложениях Mutex: монопольный доступ и блокировка всех операций RWMutex: отдельные режимы блокировки для чтения и…
Читать ответмеханизм надежной установки соединения в TCP три шага: SYN → SYN-ACK → ACK SYN: клиент начинает процедуру соединения SYN-ACK: сервер подтверждает запрос клиента и выделяет необходимые ресурсы ACK: клиент подтверждает,…
Читать ответ