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
echoサーバーを書いてI/Oと仲良くなる話
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
kariyayo
April 07, 2017
Programming
880
3
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
echoサーバーを書いてI/Oと仲良くなる話
kariyayo
April 07, 2017
More Decks by kariyayo
See All by kariyayo
MobX の話
kariyayo
0
380
SpringはどうやってDIしているのか? #jjug_ccc
kariyayo
4
3.6k
Apexで複数環境のLambda関数をデプロイする話 #jawsug
kariyayo
1
2k
近況報告といろいろ作るのが楽しい話 #yokohama_north
kariyayo
0
910
目指せ3つ星インデックス #yokohama_north
kariyayo
2
880
Spring Boot と Swagger #渋谷java
kariyayo
4
5.8k
Gradleを使えるようになるために
kariyayo
0
100
Other Decks in Programming
See All in Programming
鹿野さんに聞く!『TypeScriptコードレシピ集』で磨く実践力
tonkotsuboy_com
4
1.1k
20260623_Loop Engineeringで自分の分身の問い合わせBotを作る
ryugen04
0
220
エンジニアにデザインハーネスを 〜デザインプロセスを規定するためのハーネス〜 / Design harness from an engineer's perspective
rkaga
2
1.5k
AI がコードを書く時代における新卒エンジニアの仕事風景 (2026) / New Graduate Engineers in the Era of AI Coding (2026)
sushichan044
0
220
AI駆動開発を妨げる技術的負債の解消アプローチ / ai-refactoring-approach
minodriven
17
9.1k
共通化で考えるべきは、実装より公開する型だった
codeegg
0
240
継続モナドとリアクティブプログラミング
yukikurage
3
600
Apache Hive: そしてCloud Native Lakehouseへ
okumin
1
130
Claude Opus 4.6以後の受託開発エンジニアの変化(Claude Code開発ノウハウ大公開スペシャルbyクラスメソッド)
iidatakuma
1
760
自作OSでスライド発表する
uyuki234
1
3.8k
はてなアカウント基盤 State of the Union
cockscomb
1
1.3k
琵琶湖の水は止められてもNet--HTTPのリトライは止められない / You might be able to stop the water flow of Lake Biwa but you can't stop Net::HTTP retries
luccafort
PRO
0
380
Featured
See All Featured
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
460
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
390
Product Roadmaps are Hard
iamctodd
55
12k
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.4k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
How to Talk to Developers About Accessibility
jct
2
390
We Have a Design System, Now What?
morganepeng
55
8.2k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.4k
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
1
230
Thoughts on Productivity
jonyablonski
76
5.2k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
6k
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
590
Transcript
FDIPαʔόʔΛॻ͍ͯ *0ͱྑ͘ͳΔ 2017/3/25 Yokohama North Meetup ˌ5 #yokohama_north bati (@bati11_)
*0ͷ
*0ͷ • งғؾ͔͠௫Ίͯͳͯͪ͘ΌΜͱ͔ͬͯͳ͔ͬͨ • άάΔͱ৭ʑग़ͯ͘Δ • ৭ʑग़ͯ͘Δ͚Ͳɺେମ6/*9ωοτϫʔΫϓϩάϥϛϯάΛ ࢀরͯ͠Δ • IUUQTXXXBNB[PODPKQ6/*9ωοτϫʔΫϓϩάϥϛϯά7PMωοτϫʔ
Ϋ"1*ιέοτͱ95*8ϦνϟʔυεςΟʔϰϯεEQ • ಡΜͰΈͨ • ϒϩάʹ·ͱΊͨ • IUUQCBUJCMPHIBUFOBCMPHDPNFOUSZ
*0ͷ • ͭͷ*0Ϟσϧ • ϒϩοΩϯά*0 • ϊϯϒϩοΩϯά*0 • *0ଟॏ •
γάφϧۦಈ*0 • ඇಉظ*0
*0ͷ • ͭͷ*0Ϟσϧ • ϒϩοΩϯά*0 • ϊϯϒϩοΩϯά*0 • *0ଟॏ •
γάφϧۦಈ*0 • ඇಉظ*0 今回は話しない
*0ͷ • σʔλಡΈࠐΈ࣌ͷ*0ɺͭͷεςοϓ͔ΒΔ • σʔλΛͭ • Χʔωϧ͔ΒϢʔβʔϓϩάϥϜσʔλΛίϐʔ ͢Δ
σʔλͪ Χʔωϧ͔Β Ϣʔβʔ σʔλΛίϐʔ ىಈ ௨ ىಈ ྃ ϒϩοΫ ݕࠪ
४උྃ ىಈ ྃ ϒϩοΫ ϒϩοΫ ϒϩοΩϯά *0 ϊϯ ϒϩοΩϯά *0 *0ଟॏ ඇಉظ*0 ݕࠪ ྃ ݕࠪ ݕࠪ ݕࠪ ϒϩοΫ ݕࠪ
• ಉظ*0ૢ࡞ͱඇಉظ*0ૢ࡞ͷ *0ͷ ಉظI/Oૢ࡞Ͱɺ͜ΕΛཁٻͨ͠ϓϩηε ཁٻͨ͠I/Oૢ࡞͕ྃ͢Δ·ͰϒϩοΫ͢Δ ඇಉظI/Oૢ࡞Ͱɺ͜ΕΛཁٻͨ͠ϓϩηε ϒϩοΫ͠ͳ͍ UNIXωοτϫʔΩϯάϓϩάϥϛϯά ୈ2൛ Vol.1
σʔλͪ Χʔωϧ͔Β Ϣʔβʔ σʔλΛίϐʔ ىಈ ௨ ىಈ ྃ ϒϩοΫ ݕࠪ
४උྃ ىಈ ྃ ϒϩοΫ ϒϩοΫ ϒϩοΩϯά *0 ϊϯ ϒϩοΩϯά *0 *0ଟॏ ඇಉظ*0 ݕࠪ ྃ ݕࠪ ݕࠪ ݕࠪ ϒϩοΫ ݕࠪ 同期I/O操作
σʔλͪ Χʔωϧ͔Β Ϣʔβʔ σʔλΛίϐʔ ىಈ ௨ ىಈ ྃ ϒϩοΫ ݕࠪ
४උྃ ىಈ ྃ ϒϩοΫ ϒϩοΫ ϒϩοΩϯά *0 ϊϯ ϒϩοΩϯά *0 *0ଟॏ ඇಉظ*0 ݕࠪ ྃ ݕࠪ ݕࠪ ݕࠪ ϒϩοΫ ݕࠪ 非同期I/O操作
FDIPαʔόʔ
FDIPαʔόʔ • ΫϥΠΞϯτ͔ΒೖྗΛड͚͚ͯɺͦͷ··ฦ͢ αʔόʔ • ίʔυIUUQTHJUIVCDPNCBUJPSFOPFDIPTFSWFSCMPCNBTUFSTSD TJOHMF@FDIP@TFSWFSD • σϞ
σʔλͪ Χʔωϧ͔Β Ϣʔβʔ σʔλΛίϐʔ ىಈ ௨ ىಈ ྃ ϒϩοΫ ݕࠪ
४උྃ ىಈ ྃ ϒϩοΫ ϒϩοΫ ϒϩοΩϯά *0 ϊϯ ϒϩοΩϯά *0 *0ଟॏ ඇಉظ*0 ݕࠪ ྃ ݕࠪ ݕࠪ ݕࠪ ϒϩοΫ ݕࠪ
FDIPαʔόʔ • SFBEͰϒϩοΫͯ͠Δ • ҎԼͷͭͷํ๏Ͱରࡦͯ͠ΈΔ • ϒϩοΩϯά*0ͷ··Ϛϧνϓϩηεʹ͢Δ • ϊϯϒϩοΩϯά*0Λ͏ •
*0ଟॏΛ͏
ϒϩοΩϯά*0ͷ·· Ϛϧνϓϩηεʹ͢Δ
ϒϩοΩϯά*0ͷ··Ϛϧνϓϩηεʹ͢Δ • GPSLΛͬͯϚϧνϓϩηεʢϚϧνεϨουͰ ͍͍͚Ͳ$ݴޠͰϚϧνεϨου͔Βͳ͍ʣ • αʔόʔͷϓϩηεͭͰɺͭͷΫϥΠΞϯτʹ ରԠ͢Δ • ίʔυIUUQTHJUIVCDPNCBUJPSFOPFDIPTFSWFSCMPCNBTUFSTSD GPSL@FDIP@TFSWFSD
• σϞ
σʔλͪ Χʔωϧ͔Β Ϣʔβʔ σʔλΛίϐʔ ىಈ ௨ ىಈ ྃ ϒϩοΫ ݕࠪ
४උྃ ىಈ ྃ ϒϩοΫ ϒϩοΫ ϒϩοΩϯά *0 ϊϯ ϒϩοΩϯά *0 *0ଟॏ ඇಉظ*0 ݕࠪ ྃ ݕࠪ ݕࠪ ݕࠪ ϒϩοΫ ݕࠪ
ϊϯϒϩοΩϯά*0Λ͏
ϊϯϒϩοΩϯά*0Λ͏ • ιέοτΛϊϯϒϩοΩϯάʹ͓ͯ͘͠ • σʔλಡΈࠐΈ࣌ʹɺσʔλ͕౸ୡ͍ͯ͠ͳ͍߹ϒ ϩοΫͤͣʹ͙͢ʹΤϥʔ͕ฦͬͯ͘Δ • αʔόʔͷϓϩηεͭͰɺෳͷΫϥΠΞϯτʹରԠ ͢Δ •
ίʔυIUUQTHJUIVCDPNCBUJPSFOPFDIPTFSWFSCMPCNBTUFSTSD OPO@CMPDLJOH@FDIP@TFSWFSD • σϞ
σʔλͪ Χʔωϧ͔Β Ϣʔβʔ σʔλΛίϐʔ ىಈ ௨ ىಈ ྃ ϒϩοΫ ݕࠪ
४උྃ ىಈ ྃ ϒϩοΫ ϒϩοΫ ϒϩοΩϯά *0 ϊϯ ϒϩοΩϯά *0 *0ଟॏ ඇಉظ*0 ݕࠪ ྃ ݕࠪ ݕࠪ ݕࠪ ϒϩοΫ ݕࠪ
ϊϯϒϩοΩϯά*0Λ͏ • ιέοτΛཧ͢Δͷਏ͍ • ϒϩοΫ͠ͳ͍ͷͰɺσʔλΛͬͯΔ͚ͩͳͷʹ ϓϩάϥϜ͕ϧʔϓ͠ଓ͚ͯ͠·͍$16͕ແବʹͳ Δ • ϓϩηεͰಈ͍͍ͯΔͷͰɺଞͷ*0ͳͲͰϒϩο Ϋ͠ͳ͍Α͏ʹ͠ͳ͍͚ͯ͘ͳ͍
*0ଟॏΛ͏
*0ଟॏΛ͏ • ෳͷιέοτʹରͯ͠σʔλΛͭ • σʔλͷ౸ୡ͕͋ͬͨΒΧʔωϧ͔Βͷ௨Λड͚औΓɺ ͦͷޙσʔλͷಡΈऔΓΛߦ͏ • αʔόʔͷϓϩηεͭͰɺෳͷΫϥΠΞϯτʹରԠ ͢Δ •
ίʔυIUUQTHJUIVCDPNCBUJPSFOPFDIPTFSWFSCMPCNBTUFSTSD FQPMM@FDIP@TFSWFSD • σϞ
σʔλͪ Χʔωϧ͔Β Ϣʔβʔ σʔλΛίϐʔ ىಈ ௨ ىಈ ྃ ϒϩοΫ ݕࠪ
४උྃ ىಈ ྃ ϒϩοΫ ϒϩοΫ ϒϩοΩϯά *0 ϊϯ ϒϩοΩϯά *0 *0ଟॏ ඇಉظ*0 ݕࠪ ྃ ݕࠪ ݕࠪ ݕࠪ ϒϩοΫ ݕࠪ
*0ଟॏΛ͏ • *0ଟॏͷγεςϜίʔϧFQPMMҎ֎ʹز͔ͭ͋ ΔʢTFMFDUQPMMͳͲʣ • FQPMM-JOVYґଘɻϓϥοτϑΥʔϜґଘΛٵऩ͠ ͨϥΠϒϥϦͱͯ͠MJCFW͕͋Δ
*0ଟॏΛ͏ • ϓϩηεͰಈ͍͍ͯΔͷͰɺଞͷ*0ͳͲͰϒϩο Ϋ͠ͳ͍Α͏ʹ͠ͳ͍͚ͯ͘ͳ͍ • FQPMM͔Β௨͕དྷͯಡΈࠐΈͰϒϩοΫ͢Δ Մೳੑ͋Γ • ॻ͖ࠐΈ࣌ͷϒϩοΫ •
ϑΝΠϧಡΈࠐΈଞͷ௨৴ʹΑΔϒϩοΫ
ੈͷதͷαʔόʔ
ੈͷதͷαʔόʔ • /PEFKTݩʑMJCFW MJCFJPʢεϨουΛͬͯඇ ಉظ*0ͷΑ͏ʹৼͬͯ͘ΕΔϥΠϒϥϦʣΛͬ ͯͯɺMJCVWมΘͬͨ • ଞͷαʔόʔʁ • ࢀߟࢿྉ
• ϚϧνίΞ࣌ͷαʔόϓϩάϥϛϯάͱ )BTLFMMIUUQXXXJJKBEKQDPNQBOZEFWFMPQNFOUUFDI UFDIXFFLQEGUX@@IBTLFMMQEG
·ͱΊ
·ͱΊ • 6/*9ωοτϫʔΫϓϩάϥϛϯάɺࡉ͘ॻ͍ͯ͋ͬ ͯྑ͔ͬͨʢ*0ͷຊͷҰ෦Ͱ͢ʣ • ωοτϫʔΫͷࣝͱϓϩάϥϛϯάɺͰผ ډ͍ͯ͠Δײ͚֮ͩͬͨͲɺίʔυॻ͍ͨΒྑ͘ ͳΕͨ