
Channels
Channels, buffered проти unbuffered, close, select, range по channels, nil channels
1Що таке channel у Go?
Що таке channel у Go?
Відповідь
Channel — це тип даних, який забезпечує комунікацію та синхронізацію між goroutine. Він діє як типізований канал, що дозволяє надсилати й отримувати значення в потокобезпечний спосіб. Використовуйте channels для обміну даними між goroutine замість прямого спільного доступу до пам'яті.
2Як створити unbuffered channel цілих чисел у Go?
Як створити unbuffered channel цілих чисел у Go?
Відповідь
Unbuffered channel створюється за допомогою make(chan T) без зазначення місткості. Він блокує відправника, доки отримувач не буде готовий, забезпечуючи сувору синхронізацію. Використовуйте unbuffered channels для комунікації one-to-one, що вимагає явної синхронізації.
3Яка основна різниця між buffered та unbuffered channel?
Яка основна різниця між buffered та unbuffered channel?
Відповідь
Unbuffered channel блокує відправника, доки отримувач не буде готовий (сувора синхронізація), тоді як buffered channel може зберігати значення до своєї місткості перед блокуванням. Buffered channels розв'язують goroutine і в деяких випадках покращують продуктивність, але можуть приховувати проблеми конкурентності. Використовуйте unbuffered для синхронізації, buffered для пропускної здатності.
Як створити buffered channel із місткістю 10 елементів?
Як надіслати значення в channel?
+19 питань зі співбесід
Інші теми співбесід Go
Основи Go
Структури даних Go
Інтерфейси Go
Обробка помилок
Основи goroutines
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 та симуляторів співбесід.
Почни безкоштовно