$30 off During Our Annual Pro Sale. View Details »
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
echoサーバーを書いてI/Oと仲良くなる話
Search
kariyayo
April 07, 2017
Programming
3
850
echoサーバーを書いてI/Oと仲良くなる話
kariyayo
April 07, 2017
Tweet
Share
More Decks by kariyayo
See All by kariyayo
MobX の話
kariyayo
0
370
SpringはどうやってDIしているのか? #jjug_ccc
kariyayo
4
3.6k
Apexで複数環境のLambda関数をデプロイする話 #jawsug
kariyayo
1
1.9k
近況報告といろいろ作るのが楽しい話 #yokohama_north
kariyayo
0
880
目指せ3つ星インデックス #yokohama_north
kariyayo
2
850
Spring Boot と Swagger #渋谷java
kariyayo
4
5.8k
Gradleを使えるようになるために
kariyayo
0
93
Other Decks in Programming
See All in Programming
Developing static sites with Ruby
okuramasafumi
0
260
宅宅自以為的浪漫:跟 AI 一起為自己辦的研討會寫一個售票系統
eddie
0
500
LLM Çağında Backend Olmak: 10 Milyon Prompt'u Milisaniyede Sorgulamak
selcukusta
0
120
非同期処理の迷宮を抜ける: 初学者がつまづく構造的な原因
pd1xx
1
700
モデル駆動設計をやってみようワークショップ開催報告(Modeling Forum2025) / model driven design workshop report
haru860
0
260
Giselleで作るAI QAアシスタント 〜 Pull Requestレビューに継続的QAを
codenote
0
120
俺流レスポンシブコーディング 2025
tak_dcxi
14
8.5k
connect-python: convenient protobuf RPC for Python
anuraaga
0
390
TUIライブラリつくってみた / i-just-make-TUI-library
kazto
1
370
関数実行の裏側では何が起きているのか?
minop1205
1
680
認証・認可の基本を学ぼう前編
kouyuume
0
190
認証・認可の基本を学ぼう後編
kouyuume
0
180
Featured
See All Featured
[SF Ruby Conf 2025] Rails X
palkan
0
500
Docker and Python
trallard
47
3.7k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
37
2.6k
Facilitating Awesome Meetings
lara
57
6.7k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.5k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.6k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
54k
RailsConf 2023
tenderlove
30
1.3k
Speed Design
sergeychernyshev
33
1.4k
[RailsConf 2023] Rails as a piece of cake
palkan
58
6.1k
Being A Developer After 40
akosma
91
590k
Done Done
chrislema
186
16k
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ͷຊͷҰ෦Ͱ͢ʣ • ωοτϫʔΫͷࣝͱϓϩάϥϛϯάɺͰผ ډ͍ͯ͠Δײ͚֮ͩͬͨͲɺίʔυॻ͍ͨΒྑ͘ ͳΕͨ