Go

Channels

Channels, buffered проти unbuffered, close, select, range по channels, nil channels

22 питань зі співбесід·
Junior
1

Що таке channel у Go?

Відповідь

Channel — це тип даних, який забезпечує комунікацію та синхронізацію між goroutine. Він діє як типізований канал, що дозволяє надсилати й отримувати значення в потокобезпечний спосіб. Використовуйте channels для обміну даними між goroutine замість прямого спільного доступу до пам'яті.

2

Як створити unbuffered channel цілих чисел у Go?

Відповідь

Unbuffered channel створюється за допомогою make(chan T) без зазначення місткості. Він блокує відправника, доки отримувач не буде готовий, забезпечуючи сувору синхронізацію. Використовуйте unbuffered channels для комунікації one-to-one, що вимагає явної синхронізації.

3

Яка основна різниця між buffered та unbuffered channel?

Відповідь

Unbuffered channel блокує відправника, доки отримувач не буде готовий (сувора синхронізація), тоді як buffered channel може зберігати значення до своєї місткості перед блокуванням. Buffered channels розв'язують goroutine і в деяких випадках покращують продуктивність, але можуть приховувати проблеми конкурентності. Використовуйте unbuffered для синхронізації, buffered для пропускної здатності.

4

Як створити buffered channel із місткістю 10 елементів?

5

Як надіслати значення в channel?

+19 питань зі співбесід

Опануй Go для наступної співбесіди

Отримай доступ до всіх питань, flashcards, технічних тестів, вправ code review та симуляторів співбесід.

Почни безкоштовно