Go

Channels

Channels、buffered と unbuffered、close、select、channels に対する range、nil channels

22 面接問題·
Junior
1

Go における channel とは何ですか?

回答

channel は goroutine 間の通信と同期を可能にするデータ型です。型付けされた導管として機能し、スレッドセーフな方法で値の送受信を可能にします。メモリを直接共有するのではなく、goroutine 間でデータを共有するには channel を使用してください。

2

Go で整数の unbuffered channel を作成するにはどうしますか?

回答

unbuffered channel は容量を指定せずに make(chan T) で作成します。受信側の準備が整うまで送信側をブロックし、厳密な同期を保証します。明示的な同期を必要とする 1 対 1 の通信には unbuffered channel を使用してください。

3

buffered channel と unbuffered channel の主な違いは何ですか?

回答

unbuffered channel は受信側の準備が整うまで送信側をブロックします(厳密な同期)。一方、buffered channel は容量に達するまで値を格納してからブロックします。buffered channel は goroutine を疎結合にし、場合によってはパフォーマンスを向上させますが、並行性の問題を隠す可能性があります。同期には unbuffered を、スループットには buffered を使用してください。

4

容量 10 の buffered channel を作成するにはどうしますか?

5

channel に値を送信するにはどうしますか?

+19 面接問題

次の面接に向けてGoをマスター

すべての問題、flashcards、技術テスト、コードレビュー演習、面接シミュレーターにアクセス。

無料で始める