SlideShare a Scribd company logo
デザパタ入門 
マルチスレッド編 
第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

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

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

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

This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.
chiefujita1
 
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
Matsushita Laboratory
 
CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料
Yuuitirou528 default
 
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
Toru Tamaki
 
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
Matsushita Laboratory
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
CRI Japan, Inc.
 
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさJSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
0207sukipio
 
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
t m
 

Recently uploaded (8)

This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.
 
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
 
CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料
 
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
 
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
 
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさJSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
 
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
 

Malti thread7