Паттерны fan-in и fan-out в конкурентности Go Конкурентность в Go ⬇️ Fan-out — одновременная обработка задач несколькими горутинами Fan-in — объединение результатов работы нескольких горутин в одном канале Fan-out…
Что представляет собой MAC-адрес и для чего он используется? идентифицирует сетевой интерфейс на канальном уровне (OSI Layer 2) является уникальным аппаратным адресом интерфейса размером 48 бит назначается…
Как работает runtime в Go? Go runtime — встроенная среда выполнения, которая обеспечивает конкурентность, сборку мусора, управление памятью и планирование. К его основным компонентам относятся goroutine scheduler,…
Контекст: обработка исключений в Go, concurrency panic аварийно прекращает выполнение текущей горутины если panic не перехвачен через recover, горутина завершится с ошибкой остальная программа продолжит выполняться,…
Что произойдёт при попытке записи в закрытый канал Go? Конкурентность в Go и каналы (channels) отправка данных в закрытый канал приводит к панике (panic) паника представляет собой ошибку runtime, из-за которой…
Что произойдёт, если смешать асинхронный код с CPU-bound задачей? тема: асинхронность и CPU-bound асинхронная модель эффективна для I/O операций, но не для CPU-bound CPU-bound задача блокирует поток и замедляет…
Как работает барьерная операция в параллельной очереди? параллельная очередь — выполнение задач несколькими потоками барьерная операция — специальная точка синхронизации до прохождения барьера — задачи обрабатываются…
Что произойдёт, если не синхронизировать доступ к общей переменной? многопоточность / конкуренция гонки данных: некорректные и непредсказуемые значения состояния гонки: ошибки логики и баги возможны потеря обновлений…
контекст: Go, каналы (channels) неинициализированный канал — это значение nil запись в nil-канал блокирует горутину навсегда при записи или чтении ошибка и паника не возникают если нет других горутин, способных снять…
Что происходит внутри Thread? поток является единицей планирования ОС и основой многозадачности для него выделяются стек памяти и контекст выполнения он асинхронно выполняет функцию или метод для переключения…
небуферизированный канал обеспечивает синхронное взаимодействие горутин при операции send горутина ждёт, пока другая горутина не примет значение одновременная запись нескольких горутин не даёт гарантии порядка, но сам…