SlideShare a Scribd company logo
1 of 12
Download to read offline
デザパタ入門 
マルチスレッド編 
第5章 
鈴木雄登
ProducerConsumer 
• 登場人物 
Producer Consumer
Table 
• こんな感じ 
• 乗せられるのは3つまで 
一般的には 
ケーキ:Data 
テーブル:Channel
main 
• セットアップケーキを置くテーブル
Producer 
• 作る人 
Producer 
ケーキ作成
Consumer 
• 消費する人 
Consumer 
ケーキ消費
put 
ガード条件 
ケーキを置く操作
take 
ガード条件 
ケーキを取る操作
守られる安全性 
• ProducerとConsumerを直接やりとりさせない 
• 利点 
• コックがケーキを余分に作って置いておける 
• コックとお客さんが独立する 
• テーブルを広げれば、簡単にスケールもできる
consumerが単数 
• 「複数のコック」と「一人のお客」 
• 実装が楽になり、パフォーマンスも上がる 
• なぜ? 
• アクセスがお客のみの部分に対し、排他制御を消 
せる 
• 「イベント・ディスパッチング・スレッド」と呼ぶ
おまけ 
• Producer-Consumerパターンが定義されているイ 
ンターフェース 
• java.util.concurrent.BlockingQueue
まとめ 
• Producer:コック 
• Consumer:お客さん 
• Data:ケーキ 
• Channel:テーブル

More Related Content

Viewers also liked (10)

PRML 2.3
PRML 2.3PRML 2.3
PRML 2.3
 
【LT】 怖くない恐怖のScala.js
【LT】 怖くない恐怖のScala.js【LT】 怖くない恐怖のScala.js
【LT】 怖くない恐怖のScala.js
 
ロジスティック回帰
ロジスティック回帰ロジスティック回帰
ロジスティック回帰
 
Api設計
Api設計Api設計
Api設計
 
F.O.Xを支える技術
F.O.Xを支える技術F.O.Xを支える技術
F.O.Xを支える技術
 
Slackから始めるChatOps
Slackから始めるChatOpsSlackから始めるChatOps
Slackから始めるChatOps
 
Hector david ruiz
Hector david ruizHector david ruiz
Hector david ruiz
 
Los mejores lugares de medllin
Los mejores lugares de medllinLos mejores lugares de medllin
Los mejores lugares de medllin
 
Cartilha coleta seletiva solidaria cruz alta
Cartilha coleta seletiva solidaria cruz altaCartilha coleta seletiva solidaria cruz alta
Cartilha coleta seletiva solidaria cruz alta
 
統計勉強会LT 機械学習とは
統計勉強会LT 機械学習とは統計勉強会LT 機械学習とは
統計勉強会LT 機械学習とは
 

More from Yuto Suzuki

More from Yuto Suzuki (19)

5xx解消への道のり
5xx解消への道のり5xx解消への道のり
5xx解消への道のり
 
MySQLのインデックス入門
MySQLのインデックス入門MySQLのインデックス入門
MySQLのインデックス入門
 
Ad vol.2
Ad vol.2Ad vol.2
Ad vol.2
 
広告勉強会
広告勉強会広告勉強会
広告勉強会
 
Mastering Bitcoin ~network~
Mastering Bitcoin ~network~ Mastering Bitcoin ~network~
Mastering Bitcoin ~network~
 
Aerospike基本のき
Aerospike基本のきAerospike基本のき
Aerospike基本のき
 
いまさらAkkaStream
いまさらAkkaStreamいまさらAkkaStream
いまさらAkkaStream
 
Introduction of View Through Tracking
Introduction of View Through TrackingIntroduction of View Through Tracking
Introduction of View Through Tracking
 
エンジニアのためのマーケティング
エンジニアのためのマーケティングエンジニアのためのマーケティング
エンジニアのためのマーケティング
 
How to Build a Team
How to Build a TeamHow to Build a Team
How to Build a Team
 
プロダクトにおけるScala
プロダクトにおけるScalaプロダクトにおけるScala
プロダクトにおけるScala
 
Do you like scala
Do you like scalaDo you like scala
Do you like scala
 
Re invent
Re inventRe invent
Re invent
 
Scala戦士を増やせ
Scala戦士を増やせScala戦士を増やせ
Scala戦士を増やせ
 
スクラムに学ぶ開発の回し方
スクラムに学ぶ開発の回し方スクラムに学ぶ開発の回し方
スクラムに学ぶ開発の回し方
 
進撃のSbt
進撃のSbt進撃のSbt
進撃のSbt
 
Deeplearningとは?
Deeplearningとは?Deeplearningとは?
Deeplearningとは?
 
Git LFSを触ってみた
Git LFSを触ってみたGit LFSを触ってみた
Git LFSを触ってみた
 
実戦Scala
実戦Scala実戦Scala
実戦Scala
 

Recently uploaded

Recently uploaded (10)

新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 

Malti thread7