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
140
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
8.8k
legacy_code_fukuoka_js
tascript
1
340
svelte_typescript_fukuoka_ts
tascript
1
400
enjoy_mruby_2021
tascript
0
77
TypeScript_BFF
tascript
4
4.5k
frontend_to_cli_tool_by_rust
tascript
0
520
nestjs_typeorm
tascript
0
600
Other Decks in Technology
See All in Technology
OCI 運用監視サービス 概要
oracle4engineer
PRO
0
4.8k
Making your applications cross-environment - OSCG 2024 NA
salaboy
0
180
Platform Engineering for Software Developers and Architects
syntasso
1
520
Oracle Cloud Infrastructureデータベース・クラウド:各バージョンのサポート期間
oracle4engineer
PRO
28
12k
オープンソースAIとは何か? --「オープンソースAIの定義 v1.0」詳細解説
shujisado
7
790
Adopting Jetpack Compose in Your Existing Project - GDG DevFest Bangkok 2024
akexorcist
0
110
VideoMamba: State Space Model for Efficient Video Understanding
chou500
0
190
Amplify Gen2 Deep Dive / バックエンドの型をいかにしてフロントエンドへ伝えるか #TSKaigi #TSKaigiKansai #AWSAmplifyJP
tacck
PRO
0
370
[FOSS4G 2024 Japan LT] LLMを使ってGISデータ解析を自動化したい!
nssv
1
210
20241120_JAWS_東京_ランチタイムLT#17_AWS認定全冠の先へ
tsumita
2
250
ドメインの本質を掴む / Get the essence of the domain
sinsoku
2
150
隣接領域をBeyondするFinatextのエンジニア組織設計 / beyond-engineering-areas
stajima
1
270
Featured
See All Featured
VelocityConf: Rendering Performance Case Studies
addyosmani
325
24k
Agile that works and the tools we love
rasmusluckow
327
21k
Facilitating Awesome Meetings
lara
50
6.1k
Thoughts on Productivity
jonyablonski
67
4.3k
Adopting Sorbet at Scale
ufuk
73
9.1k
How STYLIGHT went responsive
nonsquared
95
5.2k
Raft: Consensus for Rubyists
vanstee
136
6.6k
jQuery: Nuts, Bolts and Bling
dougneiner
61
7.5k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
26
2.1k
[RailsConf 2023] Rails as a piece of cake
palkan
52
4.9k
Unsuck your backbone
ammeep
668
57k
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
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によるボトルネックの解消 非同期処理のネスト、コールバックが発生し始めた 非同期処理の結果について例外処理を書きたい 非同期処理も簡潔に書きたい