Producer-Consumerパターン
非同期処理や並行処理の設計パターン
特にスレッド間での安全なデータ受け渡しや処理負荷の分散に使われる
Producerがデータやタスクを生成し、Consumerがそれを処理する、という責務分離のデザインパターン
この2者の間には通常、共有バッファ (Message Queue)が存在する
Producerはそこにタスクを入れ、Consumerはそこからタスクを取り出して処理する
主なメリット
table:_
項目 内容
疎結合 ProducerとConsumerが互いに直接依存せず、処理の分離が可能
非同期化 Producerが早くても、Consumerが後から処理できる(リアルタイムに処理しなくてもよい)
負荷平準化 一時的に大量のタスクが発生してもキューがバッファリングするため、システム全体が安定
スケーラビリティ Consumerを増やせば、処理スループットを上げられる