
並行処理パターン
Worker pool、pipeline、fan-out/fan-in、キャンセル、context、errgroup、セマフォ
24 面接問題·
Mid-Level
1Goにおけるworker poolとは何ですか?
1
Goにおけるworker poolとは何ですか?
回答
worker poolは、固定数のgoroutine(worker)を使って共有channelからのタスクを処理する並行処理パターンです。このパターンにより、アクティブなgoroutineの数を制限し、システムリソースの消費を制御できます。タスクごとに1つのgoroutineを作成するのとは異なり、worker poolは一連のworkerを再利用して大量のタスクを効率的に処理します。
2タスクごとにgoroutineを作成する代わりにworker poolを使う主な利点は何ですか?
2
タスクごとにgoroutineを作成する代わりにworker poolを使う主な利点は何ですか?
回答
アクティブなgoroutineの数を制限することで、システムリソース(メモリとCPU)の消費を制御し、過負荷を回避できます。タスクごとにgoroutineを作成すると、数千から数百万もの同時goroutineが生じ、schedulerを飽和させメモリを枯渇させる可能性があります。worker poolは最適な数のworkerを維持し、タスクを順次処理することで、高負荷下でも予測可能なパフォーマンスを保証します。
3Goの並行処理の文脈におけるpipelineとは何ですか?
3
Goの並行処理の文脈におけるpipelineとは何ですか?
回答
pipelineはchannelで接続された一連のステージであり、各ステージは同じ関数を実行するgoroutineのグループです。各ステージは入力channelを通じてデータを受け取り、処理を行い、出力channelを通じて結果を送信します。このパターンにより、複雑な処理を単純で再利用可能なステージに分解でき、各コンポーネントの合成やテストを独立して行いやすくなります。
4
処理の終了を通知するために、worker poolでchannelを正しく閉じるにはどうすればよいですか?
5
fan-outとfan-inの違いは何ですか?
+21 面接問題
その他のGo面接トピック
Goの基礎
Junior
25問Goのデータ構造
Junior
20問Go のインターフェース
Junior
18問エラー処理
Junior
20問Goroutine の基礎
Junior
20問Channels
Junior
22問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
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問