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
How Communicating Sequential Goroutines Work
Search
Koki Ide
March 25, 2017
Technology
2
19k
How Communicating Sequential Goroutines Work
Koki Ide
March 25, 2017
Tweet
Share
More Decks by Koki Ide
See All by Koki Ide
次世代のコンテナランタイム!?gVisorのコードを読みながら理解してみる
niconegoto
6
6.1k
How to achieve parallel compilation in Go 1.9
niconegoto
6
6.7k
Let's Realm
niconegoto
0
490
Other Decks in Technology
See All in Technology
(HackFes)米国国防総省のDevSecOpsライフサイクルをAWSのセキュリティサービスとOSSで実現
syoshie
5
660
大規模組織にAIエージェントを迅速に導入するためのセキュリティの勘所 / AI agents for large-scale organizations
i35_267
6
220
P2P ではじめる WebRTC のつまづきどころ
tnoho
1
210
Railsの限界を超えろ!「家族アルバム みてね」の画像・動画の大規模アップロードを支えるアーキテクチャの変遷
ojima_h
3
390
手動からの解放!!Strands Agents で実現する総合テスト自動化
ideaws
2
290
データ駆動経営の道しるべ:プロダクト開発指標の戦略的活用法
ham0215
2
230
Step Functions First - サーバーレスアーキテクチャの新しいパラダイム
taikis
1
270
DatabricksのOLTPデータベース『Lakebase』に詳しくなろう!
inoutk
0
110
Amazon CloudWatchのメトリクスインターバルについて / Metrics interval matters
ymotongpoo
3
210
M365アカウント侵害時の初動対応
lhazy
6
4.5k
本当にわかりやすいAIエージェント入門
segavvy
10
5.9k
Webの技術とガジェットで那須の子ども達にワクワクを! / IoTLT_20250720
you
PRO
0
120
Featured
See All Featured
Designing for humans not robots
tammielis
253
25k
Art, The Web, and Tiny UX
lynnandtonic
301
21k
Build your cross-platform service in a week with App Engine
jlugia
231
18k
Automating Front-end Workflow
addyosmani
1370
200k
Git: the NoSQL Database
bkeepers
PRO
431
65k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
Building a Scalable Design System with Sketch
lauravandoore
462
33k
Typedesign – Prime Four
hannesfritz
42
2.7k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
130
19k
Side Projects
sachag
455
43k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
7
760
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
1.8k
Transcript
None
,PLJ*EF !OJDPOFHPUP .FSDBSJ4PV[PI*OD TPQIPNPSFPGUIF6OJWFSTJUZPG5PLZP
ࠓͷͷΰʔϧ ɾ$PODVSSFODZʹ͍ͭͯৄ͘͠ͳΔ ɾ(PͰ.FTTBHFQBTTJOH͕Ͳ͏࣮ݱ͞Ε͍ͯΔ͔Δ ˠ(PͬͯεήʔʂʂͬͯͳΔ
"HFOEB 4IBSFENFNPSZBOE.FTTBHFQBTTJOH*1$ $PODVSSFODZ.PEFM $PNNVOJDBUJOH4FRVFOUJBM(PSPVUJOF
$PODVSSFODZ.PEFM
$PODVSSFODZ.PEFM %POPUDPNNVOJDBUFCZTIBSJOHNFNPSZ JOTUFBE TIBSFNFNPSZCZDPNNVOJDBUJOH
ͦͦͳͥϓϩηεؒ௨৴ *1$ ͕ඞཁͳͷ͔ ɾෳϢʔβʔ͕ใʹฒߦΞΫηεͰ͖Δඞཁ ɾܭࢉͷߴԽ ɾγεςϜΛϞδϡʔϧԽͯ͠ߏ͍ͨ͠ $PODVSSFODZ.PEFM
ɾ4IBSFENFNPSZ*OUFSQSPDFTT$PNNVOJDBUJPO ɾ.FTTBHFQBTTJOH*OUFSQSPDFTT$PNNVOJDBUJPO $PODVSSFODZͷΞϓϩʔνํ๏ *1$ େ͖͘छྨʹ͔ΕΔ ڠௐϓϩηεؒͰڞ༗ϝϞϦྖҬ͕֬อ͞ΕΔ ڠௐϓϩηεؒͷϝοηʔδަͰ௨৴͢Δ $PODVSSFODZ.PEFM
ಉ͡ॲཧ ੜ࢈ऀফඅऀ Λॻ͍ͯΈΔ ɾ4IBSFENFNPSZ*OUFSQSPDFTT$PNNVOJDBUJPO ɾ.FTTBHFQBTTJOH*OUFSQSPDFTT$PNNVOJDBUJPO ڠௐϓϩηεؒͰڞ༗ϝϞϦྖҬ͕֬อ͞ΕΔ ڠௐϓϩηεؒͷϝοηʔδަͰ௨৴͢Δ $PODVSSFODZ.PEFM
ɾ4IBSFENFNPSZ*OUFSQSPDFTT$PNNVOJDBUJPO $ Ͱॻ͍ͯΈͨྫ $PODVSSFODZ.PEFM
ੜ࢈ऀHPPETΛੜ࢈ͯ͠RVFVFʹQVTI͢Δ ফඅऀEPOFͷΛݟͯɺHPPET͕ۭ͔Ͳ͏͔ ֬ೝͯ͠ɺRVFVF͔ΒQPQ͢Δ ফඅ͠ऴΘͬͨΒEPOFΛUSVFʹ͢Δ $PODVSSFODZ.PEFM
(PͰॻ͍ͯΈͨྫ ɾ.FTTBHFQBTTJOH*OUFSQSPDFTT$PNNVOJDBUJPO $PODVSSFODZ.PEFM
ੜ࢈ऀHPPETΛੜ࢈ͯ͠DIBOOFMʹ͛Δ ੜ࢈͕ऴΘͬͨΒEPOFΛ͛Δ ফඅऀDIBOOFM͔Βड͚औΔ EPOFΛड͚औͬͨΒॲཧΛऴ͑Δ $PODVSSFODZ.PEFM
4IBSFENFNPSZBOE.FTTBHFQBTTJOH*1$
$PODVSSFODZ.PEFM
4IBSFENFNPSZ*OUFSQSPDFTT$PNNVOJDBUJPO جຊతʹ04ϓϩηεΛଞϓϩηεͷϝϞϦʹΞΫηεͤ͞ͳ͍ ͜ͷ੍ΛͭҎ্ͷϓϩηε͕औΓআ͘ඞཁ͕͋Δ σʔλͷܗࣜҰϓϩηεؒͰܾΊΔͨΊɺ04ؔΘΒͳ͍ ಉ͡Ґஔʹಉ࣌ʹॻ͖ࠐ·ͳ͍͜ͱΛ࣮֬ʹ͢Δඞཁ͕͋Δ 4IBSFENFNPSZϞσϧͷಛ
ϝϞϦͰߦ͑ΔͷͰૣ͍ ϝοηʔδύογϯάҰൠతʹTZTDBMM Ͱ࣮͞ΕΔͷͰɺΧʔωϧΛհࡏͨ͠ࣄΛඞཁͱ͢ΔͨΊ͍ ϨʔείϯσΟγϣϯ͕ى͜Βͳ͍Α͏ʹϩοΫΛͱΔ͜ͱ͕ଟ͍ͨΊ Ұൠతʹ࣮͍͠ͱ͞ΕΔ 4IBSFENFNPSZ*OUFSQSPDFTT$PNNVOJDBUJPO 4IBSFENFNPSZϞσϧͷಛ
.FTTBHFQBTTJOH*OUFSQSPDFTT$PNNVOJDBUJPO
খ͍͞σʔλΛަ͢Δͷʹ༗ޮ .FTTBHFQBTTJOHϞσϧͷಛ 4IBSFENFNPSZϞσϧʹൺ࣮ͯ༰қͱ͞ΕΔ .FTTBHFQBTTJOH*OUFSQSPDFTT$PNNVOJDBUJPO
$PNNVOJDBUJOH4FRVFOUJBM(PSPVUJOF
$PNNVOJDBUJOH4FRVFOUJBM(PSPVUJOF HPSPVUJOF $PNNVOJDBUJOH4FRVFOUJBM(PSPVUJOFͰ༻͍ΒΕ͍ͯΔ෦ TFMFDU DIBOOFM HPSPVUJOFؒͰͷϝοηʔδύογϯάΛߦ͏ CZUFͷܰྔͳεϨουͷΑ͏ͳͷ ෳͷDIBOOFMͷड৴Λಉ࣌ʹߦ͏߹ͳͲʹ༻͍Δ
HPSPVUJOF ҙͷͷ04εϨουʹҙͷͷΰϧʔνϯΛεέδϡʔϦϯά͢Δ ./εέδϡʔϦϯάΛ࠾༻ ίϯςΩετεΠονΛ࣮͘͢ߦ͠γεςϜͷͯ͢ͷί ΞΛ׆༻Ͱ͖Δ͕εέδϡʔϥʔͷՃ͕ࡶ (Pͦͷࡶ͞ΛؾʹͤͣίʔυΛॻ͚ΔΑ͏ʹͯ͘͠Ε͍ͯΔ ਆʂʂ $PNNVOJDBUJOH4FRVFOUJBM(PSPVUJOF $PNNVOJDBUJOH4FRVFOUJBM(PSPVUJOFͰ༻͍ΒΕ͍ͯΔ෦
IUUQTUBMLTHPEPDPSHHJUIVCDPNOJDPOFHPUPUBMLTDPODVSSFODZTMJEF $PNNVOJDBUJOH4FRVFOUJBM(PSPVUJOF $PNNVOJDBUJOH4FRVFOUJBM(PSPVUJOFͰ༻͍ΒΕ͍ͯΔ෦
IUUQRJJUBDPNOJDPOFHPUPJUFNTEDEGDDDC $PNNVOJDBUJOH4FRVFOUJBM(PSPVUJOF $PNNVOJDBUJOH4FRVFOUJBM(PSPVUJOFͰ༻͍ΒΕ͍ͯΔ෦
DIBOOFM ܕࢦఆ͕ՄೳͰɺTFOESFDFJWFͰϒϩοΫ͢Δ pSTUDMBTTWBMVFͳͷͰҾΓʹ͑Δ CV⒎FSΛࢦఆ͢Δ͜ͱͰ4FNBQIPSFతͳ͍ํՄೳ $PNNVOJDBUJOH4FRVFOUJBM(PSPVUJOF $PNNVOJDBUJOH4FRVFOUJBM(PSPVUJOFͰ༻͍ΒΕ͍ͯΔ෦
#MPDLJOH2VFVFతͳ͍ํ ༗ݶPSແݶͷCV⒎FSΛ࣋ͭΩϡʔɻ ΩϟύγςΟΛӽ͑ͯՃ͠Α͏ͱ͢Δͱ͖ٴͼۭ ͷঢ়ଶͰऔΓग़ͦ͏ͱ͢Δͱ͖ʹϒϩοΫ͢Δ͜ͱ ͰɺͭͷϓϩηεͰڞ༗ࢿݯͷॴ༗ݖΛมߋͯ͠ ಉظ͢Δɻ $PNNVOJDBUJOH4FRVFOUJBM(PSPVUJOF $PNNVOJDBUJOH4FRVFOUJBM(PSPVUJOFͰ༻͍ΒΕ͍ͯΔ෦ DIBOOFM
4FNBQIPSFతͳ͍ํ ڞ༗ࢿݯʹରͯ͠ΞΫηεՄೳͳ ϓϩηεͷΛ੍ݶ͢Δ $PNNVOJDBUJOH4FRVFOUJBM(PSPVUJOF $PNNVOJDBUJOH4FRVFOUJBM(PSPVUJOFͰ༻͍ΒΕ͍ͯΔ෦ DIBOOFM
TFMFDU ෳͷDIBOOFMͷಡΈॻ͖Λ੍ޚͯ͘͠ΕΔ UJNFPVUఆظ࣮ߦͳͲʹ༻͍Δ͜ͱ͕Ͱ͖Δ DIBOOFMΛڠྗʹαϙʔτ ਆ $PNNVOJDBUJOH4FRVFOUJBM(PSPVUJOF $PNNVOJDBUJOH4FRVFOUJBM(PSPVUJOFͰ༻͍ΒΕ͍ͯΔ෦
TFMFDU UJNFPVU ඵ͢ΔͱUJNFPVU͢Δ ԼΛඵʹ͢ΔͱzSFTVMUz͕ฦΔ $PNNVOJDBUJOH4FRVFOUJBM(PSPVUJOF $PNNVOJDBUJOH4FRVFOUJBM(PSPVUJOFͰ༻͍ΒΕ͍ͯΔ෦
ఆظ࣮ߦ ຖඵఆظ࣮ߦ͞Εɺ ඵͰUJNFPVU͢Δ $PNNVOJDBUJOH4FRVFOUJBM(PSPVUJOF $PNNVOJDBUJOH4FRVFOUJBM(PSPVUJOFͰ༻͍ΒΕ͍ͯΔ෦ TFMFDU
4VNNBSZ $PODVSSFODZʹେ͖͚ͯ͘ 4IBSFENFNPSZͱ.FTTBHFQBTTJOH͕͋Γɺརͱ͕ܽ͋Δ DIBOOFMͱTFMFDUͰڧྗͳ.FTTBHFQBTTJOHΛ࣮ݱͰ͖Δ TZODύοέʔδΛ͑ഉଞ੍ޚͰ͖Δ͚Ͳɺ (PΒ͘͠DIBOOFM͍͜ͳͯ͠zTIBSFNFNPSZCZDPNNVOJDBUJOHz HPSPVUJOF͍͢͝ɻSVOUJNFҎԼΛಡ͏ʂʂ
(P࠷ߴʂʂʂʂʂ 4VNNBSZ
,PLJ*EF !OJDPOFHPUP .FSDBSJ4PV[PI*OD TPQIPNPSFPGUIF6OJWFSTJUZPG5PLZP