
Примітиви синхронізації
sync.Mutex, RWMutex, Once, Pool, Map, Cond, атомарні операції
1Що таке sync.Mutex у Go?
Що таке sync.Mutex у Go?
Відповідь
sync.Mutex (mutual exclusion lock) — це примітив синхронізації, який гарантує, що лише одна горутина може отримати доступ до критичної секції одночасно. Виклик Lock блокує, доки mutex не стане доступним, а Unlock звільняє його для інших горутин. Використовується для захисту одночасного доступу до спільних даних.
2Що станеться, якщо ми забудемо викликати Unlock після Lock на sync.Mutex?
Що станеться, якщо ми забудемо викликати Unlock після Lock на sync.Mutex?
Відповідь
Забування Unlock створює потенційний deadlock, оскільки інші горутини нескінченно чекатимуть, щоб отримати mutex. Найкраща практика — використовувати defer, щоб гарантувати виклик Unlock навіть у разі panic. Завжди поєднуйте Lock і Unlock в одній області видимості, щоб уникнути витоків блокування.
3Яка основна різниця між sync.Mutex і sync.RWMutex?
Яка основна різниця між sync.Mutex і sync.RWMutex?
Відповідь
sync.RWMutex дозволяє кілька одночасних читань через RLock, але лише один виключний запис через Lock. Це покращує продуктивність у сценаріях з інтенсивним читанням, оскільки читачі не блокують один одного. Використовуйте RWMutex, коли читання часті, а записи рідкісні.
Чому варто використовувати defer з Unlock на sync.Mutex?
Коли варто віддавати перевагу sync.RWMutex над sync.Mutex?
+19 питань зі співбесід
Інші теми співбесід Go
Основи Go
Структури даних Go
Інтерфейси Go
Обробка помилок
Основи goroutines
Channels
Go Modules
HTTP-сервер
HTTP-клієнт
Кодування JSON
Database/SQL
Пакет context
Testing
Патерни конкурентності
Веб-фреймворки Go
Проєктування REST API
gRPC
Reflection
Керування пам'яттю
Оптимізація продуктивності
Generics
Go Design Patterns
Microservices
Безпека та автентифікація
Docker & Containerization
Kubernetes Basics
Просунутий Go
Розробка CLI
Опануй Go для наступної співбесіди
Отримай доступ до всіх питань, flashcards, технічних тестів, вправ code review та симуляторів співбесід.
Почни безкоштовно