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
0
96
Asyncで 非同期処理を 少しだけ楽に書く/ ruby_with_async
Wataru Morita
May 08, 2019
Tweet
Share
More Decks by Wataru Morita
See All by Wataru Morita
5-things-for-front-end
tascript
0
7.7k
legacy_code_fukuoka_js
tascript
1
290
svelte_typescript_fukuoka_ts
tascript
1
330
enjoy_mruby_2021
tascript
0
71
TypeScript_BFF
tascript
4
4.3k
frontend_to_cli_tool_by_rust
tascript
0
480
nestjs_typeorm
tascript
0
520
Other Decks in Technology
See All in Technology
現代CSSフレームワークの内部実装とその仕組み
poteboy
7
3.6k
検証を通して見えてきたTiDBの性能特性
lycorptech_jp
PRO
6
3.8k
Delivering Millions of Messages within seconds @ Duolingo
pelelgrino
0
350
どうするコスト最適化のトレードオフ
tetsuyaooooo
1
530
Cloud Native Java with Spring Boot (CNCF Aarhus, April 2024)
thomasvitale
1
170
いつか使うかも貯金してたらめちゃめちゃ機能が増えてた話
riyaamemiya
0
270
今年のRubyKaigiはProfiler Year🤘
osyoyu
0
150
FrontDoorとWebAppsを組み合わせた際のリダイレクト処理の注意点
kenichirokimura
1
530
自己改善からチームを動かす! 「セルフエンジニアリングマネージャー」のすゝめ
shoota
6
760
ServiceNow Knowledge Learning Rise up
manarobot
0
210
[新卒向け研修資料] テスト文字列に「うんこ」と入れるな(2024年版)
infiniteloop_inc
4
16k
Java EE/Jakarta EEの現状と将来―クラウドネイティブ時代にJava EEは対応できるのか?―
takakiyo
1
160
Featured
See All Featured
The Cost Of JavaScript in 2023
addyosmani
16
3.9k
How to train your dragon (web standard)
notwaldorf
73
5.2k
Robots, Beer and Maslow
schacon
PRO
155
7.9k
A Tale of Four Properties
chriscoyier
151
22k
How STYLIGHT went responsive
nonsquared
92
4.8k
The Brand Is Dead. Long Live the Brand.
mthomps
49
29k
Intergalactic Javascript Robots from Outer Space
tanoku
266
26k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
2
3.4k
10 Git Anti Patterns You Should be Aware of
lemiorhan
648
58k
Design by the Numbers
sachag
274
18k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
659
120k
RailsConf 2023
tenderlove
4
540
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によるボトルネックの解消 非同期処理のネスト、コールバックが発生し始めた 非同期処理の結果について例外処理を書きたい 非同期処理も簡潔に書きたい