Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Asyncで 非同期処理を 少しだけ楽に書く/ ruby_with_async
Search
Wataru Morita
May 08, 2019
Technology
240
0
Share
Asyncで 非同期処理を 少しだけ楽に書く/ ruby_with_async
Wataru Morita
May 08, 2019
More Decks by Wataru Morita
See All by Wataru Morita
thanks_react_router_v7
tascript
0
200
5-things-for-front-end
tascript
0
11k
legacy_code_fukuoka_js
tascript
1
460
svelte_typescript_fukuoka_ts
tascript
1
480
enjoy_mruby_2021
tascript
0
120
TypeScript_BFF
tascript
4
4.8k
frontend_to_cli_tool_by_rust
tascript
0
580
nestjs_typeorm
tascript
0
680
Other Decks in Technology
See All in Technology
How to install a gem
indirect
0
2k
遊びで始めたNew Relic MCP、気づいたらChatOpsなオブザーバビリティボットができてました/From New Relic MCP to a ChatOps Observability Bot
aeonpeople
1
130
Tour of Agent Protocols: MCP, A2A, AG-UI, A2UI with ADK
meteatamel
0
160
Physical AI on AWS リファレンスアーキテクチャ / Physical AI on AWS Reference Architecture
aws_shota
1
200
不確実性と戦いながら見積もりを作成するプロセス/mitsumori-process
hirodragon112
1
150
Oracle Cloud Infrastructure:2026年3月度サービス・アップデート
oracle4engineer
PRO
0
220
自分をひらくと次のチャレンジの敷居が下がる
sudoakiy
2
930
Move Fast and Break Things: 10 in 20
ramimac
0
100
最大のアウトプット術は問題を作ること
ryoaccount
0
180
SaaSの操作主体は人間からAIへ - 経理AIエージェントが目指す深い自動化
nishihira
0
130
MCPで決済に楽にする
mu7889yoon
0
160
開発チームとQAエンジニアの新しい協業モデル -年末調整開発チームで実践する【QAリード施策】-
qa
0
540
Featured
See All Featured
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
1.9k
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
96
Git: the NoSQL Database
bkeepers
PRO
432
67k
[RailsConf 2023] Rails as a piece of cake
palkan
59
6.4k
Why You Should Never Use an ORM
jnunemaker
PRO
61
9.8k
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.2k
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
340
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
210
Typedesign – Prime Four
hannesfritz
42
3k
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
240
How to Think Like a Performance Engineer
csswizardry
28
2.5k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.2k
Transcript
"TZODͰ ඇಉظॲཧΛ গָ͚ͩ͠ʹॻ͘ @tascript e-ZUKA Tech Night
;͋Έ 森田 亘(たすくん@tascript) GMOペパボエンジニア Nuxt、Vue、TypeScript
3VCZͰ ඇಉظॲཧΛॻ͖͍ͨ
બࢶ Thread(並列処理) Fiber(並行処理) fork(プロセスの複製) etc…
ߟྀ͖͢ I/O待ちによるGVL(Giant VM lock)の解放 スレッドセーフなのか プリエンプティブ/ノンプリエンティブによるコンテキストスイッチ スレッドの増加によるコードの複雑化
Ԟ͕ਂ͍
ߟ͑Δ͜ͱ͕ଟ͘ͳΔ
"TZODͰ ඇಉظॲཧΛ ޮతʹॻ͚Δ
"TZOD 非同期I/Oのフレームワーク 内部ではFiberを使用 JavaScriptのasync/awaitっぽい 簡潔なシンタックスで非同期処理が実装可能
'JCFS ノンプリエンプティブな軽量スレッド 親子関係のスレッドを作成 親子間でコンテキストスイッチ コルーチンに近い ࢠ ࣌ؒ
جຊతͳૢ࡞ Asyncブロックで非同期処理を宣言 taskメソッド(read、write、sleep) 同期処理と非同期処理が明瞭になる
'JCFSͷΈͰ࣮ࢪ 同期処理と非同期処理で関数を変更 DRYとはなにか
BTZODBXBJUͬΆ͘ 非同期処理の結果を待機する 結果によって例外処理も書きやすい 同期が必要なポイントが確認しやすい
͍ॴ ブロッキングI/Oによるボトルネックの解消 非同期処理のネスト、コールバックが発生し始めた 非同期処理の結果について例外処理を書きたい 非同期処理も簡潔に書きたい