
Channels
Channels、buffered と unbuffered、close、select、channels に対する range、nil channels
22 面接問題·
Junior
1Go における channel とは何ですか?
1
Go における channel とは何ですか?
回答
channel は goroutine 間の通信と同期を可能にするデータ型です。型付けされた導管として機能し、スレッドセーフな方法で値の送受信を可能にします。メモリを直接共有するのではなく、goroutine 間でデータを共有するには channel を使用してください。
2Go で整数の unbuffered channel を作成するにはどうしますか?
2
Go で整数の unbuffered channel を作成するにはどうしますか?
回答
unbuffered channel は容量を指定せずに make(chan T) で作成します。受信側の準備が整うまで送信側をブロックし、厳密な同期を保証します。明示的な同期を必要とする 1 対 1 の通信には unbuffered channel を使用してください。
3buffered channel と unbuffered channel の主な違いは何ですか?
3
buffered channel と unbuffered channel の主な違いは何ですか?
回答
unbuffered channel は受信側の準備が整うまで送信側をブロックします(厳密な同期)。一方、buffered channel は容量に達するまで値を格納してからブロックします。buffered channel は goroutine を疎結合にし、場合によってはパフォーマンスを向上させますが、並行性の問題を隠す可能性があります。同期には unbuffered を、スループットには buffered を使用してください。
4
容量 10 の buffered channel を作成するにはどうしますか?
5
channel に値を送信するにはどうしますか?
+19 面接問題
その他のGo面接トピック
Goの基礎
Junior
25問Goのデータ構造
Junior
20問Go のインターフェース
Junior
18問エラー処理
Junior
20問Goroutine の基礎
Junior
20問Go Modules
Mid-Level
18問HTTP サーバー
Mid-Level
24問HTTPクライアント
Mid-Level
18問JSON エンコーディング
Mid-Level
20問Database/SQL
Mid-Level
22問context パッケージ
Mid-Level
20問Testing
Mid-Level
22問並行処理パターン
Mid-Level
24問同期プリミティブ
Mid-Level
22問Go Web フレームワーク
Mid-Level
20問REST API 設計
Mid-Level
20問gRPC
Mid-Level
22問Reflection
Senior
20問メモリ管理
Senior
24問パフォーマンス最適化
Senior
22問Generics
Senior
20問Go Design Patterns
Senior
24問Microservices
Senior
24問セキュリティと認証
Senior
24問Docker & Containerization
Senior
20問Kubernetes Basics
Senior
22問高度な Go
Senior
20問CLI開発
Senior
20問