Submit Search
Upload
2017 02-14 キュー実装に見る排他処理
•
Download as PPTX, PDF
•
2 likes
•
2,677 views
Akishige TAKEKOSHI
Follow
キューは排他制御ができていないと簡単に死んでしまいます。
Read less
Read more
Technology
Report
Share
Report
Share
1 of 16
Download now
Recommended
境界付けられたコンテキスト 概念編 (ドメイン駆動設計用語解説シリーズ)
境界付けられたコンテキスト 概念編 (ドメイン駆動設計用語解説シリーズ)
Koichiro Matsuoka
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
日本マイクロソフト株式会社
できる!並列・並行プログラミング
できる!並列・並行プログラミング
Preferred Networks
わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48
わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48
Preferred Networks
webSocket通信を知らないiOSエンジニアが知っておいて損はしない(経験談的な)軽い話
webSocket通信を知らないiOSエンジニアが知っておいて損はしない(経験談的な)軽い話
Yuhei Miyazato
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
mosa siru
やはりお前らのMVCは間違っている
やはりお前らのMVCは間違っている
Koichi Tanaka
モバイルゲームの「大規模な開発」かつ「高頻度の更新」を実現するための開発環境整備の取り組み
モバイルゲームの「大規模な開発」かつ「高頻度の更新」を実現するための開発環境整備の取り組み
MorioImai
Recommended
境界付けられたコンテキスト 概念編 (ドメイン駆動設計用語解説シリーズ)
境界付けられたコンテキスト 概念編 (ドメイン駆動設計用語解説シリーズ)
Koichiro Matsuoka
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
日本マイクロソフト株式会社
できる!並列・並行プログラミング
できる!並列・並行プログラミング
Preferred Networks
わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48
わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48
Preferred Networks
webSocket通信を知らないiOSエンジニアが知っておいて損はしない(経験談的な)軽い話
webSocket通信を知らないiOSエンジニアが知っておいて損はしない(経験談的な)軽い話
Yuhei Miyazato
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
mosa siru
やはりお前らのMVCは間違っている
やはりお前らのMVCは間違っている
Koichi Tanaka
モバイルゲームの「大規模な開発」かつ「高頻度の更新」を実現するための開発環境整備の取り組み
モバイルゲームの「大規模な開発」かつ「高頻度の更新」を実現するための開発環境整備の取り組み
MorioImai
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
Yoshifumi Kawai
メルカリ・ソウゾウでは どうGoを活用しているのか?
メルカリ・ソウゾウでは どうGoを活用しているのか?
Takuya Ueda
分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)
NTT Communications Technology Development
世界でいちばんわかりやすいドメイン駆動設計
世界でいちばんわかりやすいドメイン駆動設計
増田 亨
ドメイン駆動設計入門
ドメイン駆動設計入門
Takuya Kitamura
Azure Service Fabric 概要
Azure Service Fabric 概要
Daiyu Hatakeyama
Go 製リアルタイムサーバーの Kubernetes での運用について
Go 製リアルタイムサーバーの Kubernetes での運用について
KairiOkumura
Firebase Authを Nuxt + Railsの自前サービス に導入してみた
Firebase Authを Nuxt + Railsの自前サービス に導入してみた
Tomoe Sawai
ぼくとJenkinsおじさんの360日戦争
ぼくとJenkinsおじさんの360日戦争
goccy
Spring CloudとZipkinを利用した分散トレーシング
Spring CloudとZipkinを利用した分散トレーシング
Rakuten Group, Inc.
実録Blue-Green Deployment導入記
実録Blue-Green Deployment導入記
Hiroyuki Ohnaka
リアルタイムサーバー 〜Erlang/OTPで作るPubSubサーバー〜
リアルタイムサーバー 〜Erlang/OTPで作るPubSubサーバー〜
Yugo Shimizu
ドメイン駆動設計 本格入門
ドメイン駆動設計 本格入門
増田 亨
GraphQLのsubscriptionで出来ること
GraphQLのsubscriptionで出来ること
Shingo Fukui
オススメの標準・準標準パッケージ20選
オススメの標準・準標準パッケージ20選
Takuya Ueda
なぜ人は必死でjQueryを捨てようとしているのか
なぜ人は必死でjQueryを捨てようとしているのか
Yoichi Toyota
社内のマニュアルをSphinxで作ってみた
社内のマニュアルをSphinxで作ってみた
Iosif Takakura
マイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチ
増田 亨
ログの書き方がチームの生産性を爆上げする話
ログの書き方がチームの生産性を爆上げする話
Tsuyoshi Ushio
ドメイン駆動設計 ( DDD ) をやってみよう
ドメイン駆動設計 ( DDD ) をやってみよう
増田 亨
OmegaTでドキュメント翻訳
OmegaTでドキュメント翻訳
Takako Miyagawa
Idcfクラウド 初心者の事始め(2)資料
Idcfクラウド 初心者の事始め(2)資料
Takako Miyagawa
More Related Content
What's hot
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
Yoshifumi Kawai
メルカリ・ソウゾウでは どうGoを活用しているのか?
メルカリ・ソウゾウでは どうGoを活用しているのか?
Takuya Ueda
分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)
NTT Communications Technology Development
世界でいちばんわかりやすいドメイン駆動設計
世界でいちばんわかりやすいドメイン駆動設計
増田 亨
ドメイン駆動設計入門
ドメイン駆動設計入門
Takuya Kitamura
Azure Service Fabric 概要
Azure Service Fabric 概要
Daiyu Hatakeyama
Go 製リアルタイムサーバーの Kubernetes での運用について
Go 製リアルタイムサーバーの Kubernetes での運用について
KairiOkumura
Firebase Authを Nuxt + Railsの自前サービス に導入してみた
Firebase Authを Nuxt + Railsの自前サービス に導入してみた
Tomoe Sawai
ぼくとJenkinsおじさんの360日戦争
ぼくとJenkinsおじさんの360日戦争
goccy
Spring CloudとZipkinを利用した分散トレーシング
Spring CloudとZipkinを利用した分散トレーシング
Rakuten Group, Inc.
実録Blue-Green Deployment導入記
実録Blue-Green Deployment導入記
Hiroyuki Ohnaka
リアルタイムサーバー 〜Erlang/OTPで作るPubSubサーバー〜
リアルタイムサーバー 〜Erlang/OTPで作るPubSubサーバー〜
Yugo Shimizu
ドメイン駆動設計 本格入門
ドメイン駆動設計 本格入門
増田 亨
GraphQLのsubscriptionで出来ること
GraphQLのsubscriptionで出来ること
Shingo Fukui
オススメの標準・準標準パッケージ20選
オススメの標準・準標準パッケージ20選
Takuya Ueda
なぜ人は必死でjQueryを捨てようとしているのか
なぜ人は必死でjQueryを捨てようとしているのか
Yoichi Toyota
社内のマニュアルをSphinxで作ってみた
社内のマニュアルをSphinxで作ってみた
Iosif Takakura
マイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチ
増田 亨
ログの書き方がチームの生産性を爆上げする話
ログの書き方がチームの生産性を爆上げする話
Tsuyoshi Ushio
ドメイン駆動設計 ( DDD ) をやってみよう
ドメイン駆動設計 ( DDD ) をやってみよう
増田 亨
What's hot
(20)
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
メルカリ・ソウゾウでは どうGoを活用しているのか?
メルカリ・ソウゾウでは どうGoを活用しているのか?
分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)
世界でいちばんわかりやすいドメイン駆動設計
世界でいちばんわかりやすいドメイン駆動設計
ドメイン駆動設計入門
ドメイン駆動設計入門
Azure Service Fabric 概要
Azure Service Fabric 概要
Go 製リアルタイムサーバーの Kubernetes での運用について
Go 製リアルタイムサーバーの Kubernetes での運用について
Firebase Authを Nuxt + Railsの自前サービス に導入してみた
Firebase Authを Nuxt + Railsの自前サービス に導入してみた
ぼくとJenkinsおじさんの360日戦争
ぼくとJenkinsおじさんの360日戦争
Spring CloudとZipkinを利用した分散トレーシング
Spring CloudとZipkinを利用した分散トレーシング
実録Blue-Green Deployment導入記
実録Blue-Green Deployment導入記
リアルタイムサーバー 〜Erlang/OTPで作るPubSubサーバー〜
リアルタイムサーバー 〜Erlang/OTPで作るPubSubサーバー〜
ドメイン駆動設計 本格入門
ドメイン駆動設計 本格入門
GraphQLのsubscriptionで出来ること
GraphQLのsubscriptionで出来ること
オススメの標準・準標準パッケージ20選
オススメの標準・準標準パッケージ20選
なぜ人は必死でjQueryを捨てようとしているのか
なぜ人は必死でjQueryを捨てようとしているのか
社内のマニュアルをSphinxで作ってみた
社内のマニュアルをSphinxで作ってみた
マイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチ
ログの書き方がチームの生産性を爆上げする話
ログの書き方がチームの生産性を爆上げする話
ドメイン駆動設計 ( DDD ) をやってみよう
ドメイン駆動設計 ( DDD ) をやってみよう
Viewers also liked
OmegaTでドキュメント翻訳
OmegaTでドキュメント翻訳
Takako Miyagawa
Idcfクラウド 初心者の事始め(2)資料
Idcfクラウド 初心者の事始め(2)資料
Takako Miyagawa
CodeIgniterのライセンスについて
CodeIgniterのライセンスについて
Takako Miyagawa
CodeIgniterでXMLを処理してみる
CodeIgniterでXMLを処理してみる
智之 大野
FuelPHP で DynamoDB
FuelPHP で DynamoDB
Tetsuji Koyama
omoon.org の裏側 〜FuelPHP の task 活用例〜
omoon.org の裏側 〜FuelPHP の task 活用例〜
Sotaro Omura
Fuel phpをcomposerに本気で対応させた時の話
Fuel phpをcomposerに本気で対応させた時の話
Keishi Hosoba
PHPUnitでリファクタリング
PHPUnitでリファクタリング
Takako Miyagawa
Codeigniter3フレームアップデート
Codeigniter3フレームアップデート
tomohiro kitaura
Code igniterを初めて使うときにはまった4つのポイント
Code igniterを初めて使うときにはまった4つのポイント
noldor
Codeigniter4の比較と検証
Codeigniter4の比較と検証
ME iBotch
CodeIgniter3マニュアル和訳の方法と感想
CodeIgniter3マニュアル和訳の方法と感想
Akishige TAKEKOSHI
CodeIgniter4 PHPCon 2016
CodeIgniter4 PHPCon 2016
Takako Miyagawa
スピーカーから始める勉強会
スピーカーから始める勉強会
Akishige TAKEKOSHI
groceryCRUDとtank_authで簡単に管理画面と認証機能を作る
groceryCRUDとtank_authで簡単に管理画面と認証機能を作る
Akishige TAKEKOSHI
CodeIgniter をモダンに改造してみた
CodeIgniter をモダンに改造してみた
Masaru Matsuo
SQLite2と3のエスケープ関数の違いとその対策
SQLite2と3のエスケープ関数の違いとその対策
Akishige TAKEKOSHI
Dockerでデプロイ
Dockerでデプロイ
oshiro_seiya
PHPCON fukuoka 2015 CodeIgniter update
PHPCON fukuoka 2015 CodeIgniter update
Takako Miyagawa
Spring'17リリースノート輪読会 API By フレクト
Spring'17リリースノート輪読会 API By フレクト
政雄 金森
Viewers also liked
(20)
OmegaTでドキュメント翻訳
OmegaTでドキュメント翻訳
Idcfクラウド 初心者の事始め(2)資料
Idcfクラウド 初心者の事始め(2)資料
CodeIgniterのライセンスについて
CodeIgniterのライセンスについて
CodeIgniterでXMLを処理してみる
CodeIgniterでXMLを処理してみる
FuelPHP で DynamoDB
FuelPHP で DynamoDB
omoon.org の裏側 〜FuelPHP の task 活用例〜
omoon.org の裏側 〜FuelPHP の task 活用例〜
Fuel phpをcomposerに本気で対応させた時の話
Fuel phpをcomposerに本気で対応させた時の話
PHPUnitでリファクタリング
PHPUnitでリファクタリング
Codeigniter3フレームアップデート
Codeigniter3フレームアップデート
Code igniterを初めて使うときにはまった4つのポイント
Code igniterを初めて使うときにはまった4つのポイント
Codeigniter4の比較と検証
Codeigniter4の比較と検証
CodeIgniter3マニュアル和訳の方法と感想
CodeIgniter3マニュアル和訳の方法と感想
CodeIgniter4 PHPCon 2016
CodeIgniter4 PHPCon 2016
スピーカーから始める勉強会
スピーカーから始める勉強会
groceryCRUDとtank_authで簡単に管理画面と認証機能を作る
groceryCRUDとtank_authで簡単に管理画面と認証機能を作る
CodeIgniter をモダンに改造してみた
CodeIgniter をモダンに改造してみた
SQLite2と3のエスケープ関数の違いとその対策
SQLite2と3のエスケープ関数の違いとその対策
Dockerでデプロイ
Dockerでデプロイ
PHPCON fukuoka 2015 CodeIgniter update
PHPCON fukuoka 2015 CodeIgniter update
Spring'17リリースノート輪読会 API By フレクト
Spring'17リリースノート輪読会 API By フレクト
Similar to 2017 02-14 キュー実装に見る排他処理
Python 2/3コード共存戦略 #osakapy
Python 2/3コード共存戦略 #osakapy
敦志 金谷
MicroPythonのCモジュールを作ってみる
MicroPythonのCモジュールを作ってみる
Kenta IDA
Github Actionsで始めるROS/ROS2のCI
Github Actionsで始めるROS/ROS2のCI
Atsuki Yokota
わんくま同盟 名古屋勉強会 #43 ライトニングトーク「Firefoxがver.57~(Quantum)にアップグレードされて困ったこと・やったこと」
わんくま同盟 名古屋勉強会 #43 ライトニングトーク「Firefoxがver.57~(Quantum)にアップグレードされて困ったこと・やったこと」
Hiro H.
CotEditor Script
CotEditor Script
Kosuke Usami
「Python言語」はじめの一歩 / First step of Python
「Python言語」はじめの一歩 / First step of Python
Takanori Suzuki
PEP8を読んでみよう
PEP8を読んでみよう
2bo 2bo
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版
Katsuhiro Morishita
Pyconjp2016 pyftplib
Pyconjp2016 pyftplib
Shinya Okano
Firefox と Mozilla のテクノロジー
Firefox と Mozilla のテクノロジー
dynamis
Kivyでゲーム
Kivyでゲーム
Jun Okazaki
Code igniter + ci phpunit-test
Code igniter + ci phpunit-test
ME iBotch
最新UE4タイトルでのローカライズ事例 (UE4 Localization Deep Dive)
最新UE4タイトルでのローカライズ事例 (UE4 Localization Deep Dive)
エピック・ゲームズ・ジャパン Epic Games Japan
第1回python勉強会
第1回python勉強会
Yoshio Shimomura
UEFIベアメタルプログラミング
UEFIベアメタルプログラミング
Yuma Ohgami
Python languageupdate (2004)
Python languageupdate (2004)
泰 増田
211120 他人の書いたPythonスクリプトをステップ実行で理解する
211120 他人の書いたPythonスクリプトをステップ実行で理解する
Takuya Nishimoto
Devとopsをつなぐchat ops
Devとopsをつなぐchat ops
ikikko
EC-CUBEユーザカンファレンス2016
EC-CUBEユーザカンファレンス2016
Chihiro Adachi
Build an iOS app with ConcourseCI
Build an iOS app with ConcourseCI
健仁 天沼
Similar to 2017 02-14 キュー実装に見る排他処理
(20)
Python 2/3コード共存戦略 #osakapy
Python 2/3コード共存戦略 #osakapy
MicroPythonのCモジュールを作ってみる
MicroPythonのCモジュールを作ってみる
Github Actionsで始めるROS/ROS2のCI
Github Actionsで始めるROS/ROS2のCI
わんくま同盟 名古屋勉強会 #43 ライトニングトーク「Firefoxがver.57~(Quantum)にアップグレードされて困ったこと・やったこと」
わんくま同盟 名古屋勉強会 #43 ライトニングトーク「Firefoxがver.57~(Quantum)にアップグレードされて困ったこと・やったこと」
CotEditor Script
CotEditor Script
「Python言語」はじめの一歩 / First step of Python
「Python言語」はじめの一歩 / First step of Python
PEP8を読んでみよう
PEP8を読んでみよう
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版
Pyconjp2016 pyftplib
Pyconjp2016 pyftplib
Firefox と Mozilla のテクノロジー
Firefox と Mozilla のテクノロジー
Kivyでゲーム
Kivyでゲーム
Code igniter + ci phpunit-test
Code igniter + ci phpunit-test
最新UE4タイトルでのローカライズ事例 (UE4 Localization Deep Dive)
最新UE4タイトルでのローカライズ事例 (UE4 Localization Deep Dive)
第1回python勉強会
第1回python勉強会
UEFIベアメタルプログラミング
UEFIベアメタルプログラミング
Python languageupdate (2004)
Python languageupdate (2004)
211120 他人の書いたPythonスクリプトをステップ実行で理解する
211120 他人の書いたPythonスクリプトをステップ実行で理解する
Devとopsをつなぐchat ops
Devとopsをつなぐchat ops
EC-CUBEユーザカンファレンス2016
EC-CUBEユーザカンファレンス2016
Build an iOS app with ConcourseCI
Build an iOS app with ConcourseCI
Recently uploaded
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
taisei2219
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Yuma Ohgami
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
Toru Tamaki
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
Toru Tamaki
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
iPride Co., Ltd.
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
Yuki Kikuchi
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
Hiroki Ichikura
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
Toru Tamaki
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
sugiuralab
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
FumieNakayama
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
FumieNakayama
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
akihisamiyanaga1
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
博三 太田
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
UEHARA, Tetsutaro
Recently uploaded
(14)
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
2017 02-14 キュー実装に見る排他処理
1.
キュー実装に見る 排他処理 CodeIgniter Night 2 2017-02-14
@noldorinfo
2.
自己紹介 • 竹腰彰成(たけこしあきしげ) • Twitter:
@noldorinfo • http://blog.noldor.info/ 2
3.
今日のテーマ • CodeIgniter4でキュー実装中です • 仕様変更や機能追加するならリリース前のいまのうち •
レビュー的な意味でツッコミお願いします 3
4.
キューとは Queue 4
5.
キュー(Queue) • 先入れ先出し: First
In First Out: FIFO • 対義語はスタック(Last In First Out) • ここテストに出ます(※基本情報技術者試験) 5 図はWikiPediaより https://ja.wikipedia.org/wiki/FIFO
6.
キューの利用用途 • フレームワークの場合、メッセージキューイング用途に使う • 例) •
メール送信のリクエストをため込む • PDF生成を別スレッドに処理させる • つまり相手の応答を待たずに次の処理に移るために使う • 何か重い処理をしたいが、今すぐでなくてよい • 一方でブラウザにはすぐに応答したい • キューに入れてしまおう 6 ※パンクするのでメッセージを溜め込んではいけません
7.
処理が異常終了してメッセージが消える 7 処理始めるのでキューからメッセージ消しますー Fatal Error!
8.
メッセージを残すと二重処理 8 処理始めます、終わるまでメッセージ消しませんー 別のスレッドが同じメッセージ取り出しちゃった! 重い、終わらない……
9.
そこで排他処理 9 処理始めます、作業中のマーキングしますー 次のメッセージをやるねー 重い、終わらない…… こんなライブラリがほしい!
10.
キュー実装がhelp wantedに 10
11.
リクエストされているキューの種類 • RabbitMQ • ググると利用事例が結構あるキューのミドルウェア •
Local File • ミドルウェアなしでも動かしたいらしい • Local Database • Webサーバが複数でもRDBで実装できていればいいよね • Redis、Memcached • Webサーバが複数でもKVSで実装できていればいいよね 11
12.
RabbitMQでの排他処理 • Message Acknowledgment
(ACK) • RDBのトランザクションのようなもの • 作業中はセッションつなげっぱなし、終わったらACKを投げる • ACKが戻る前にセッションが切れたら異常終了とみなす • セッションにタイムアウトはないので重い処理もできる 12 メッセージ取得 終わったら知らせる セッション持ったまま処理
13.
RDBでRabbitMQのマネはできない • RDBならトランザクションでやれば楽だよね! 異常時にはロールバックできるし! ⇒行ロック・テーブルロック持ちっぱなし問題発生 13 メッセージ取得 終わったらcommit セッション持ったまま処理 DBへの負荷が!
14.
トランザクションを使わない排他処理 • UPDATEしてaffected rows
> 0ならロックできた、とみなす • SQLが1行で済むのでアトミック性は確保できている • 異常終了は検知できないのでタイムアウト処理を作る必要あり 14
15.
まだ確認できてないこと • Radis/Memcachedで同じようなことできるの? • 長時間セッション張っていいの? •
FIFOできるの? • ググると実装はあるらしい • ローカルファイルで汎用実装だとflock()だよね…… • flock()は信用ならんイメージがある • mkdir()による代替実装って今どきやるのか? アドバイスください! 15
16.
ご清聴ありがとうございました 16
Download now