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.2k
How to achieve parallel compilation in Go 1.9
niconegoto
6
6.8k
Let's Realm
niconegoto
0
490
Other Decks in Technology
See All in Technology
CLIPでマルチモーダル画像検索 →とても良い
wm3
1
660
デザインとエンジニアリングの架け橋を目指す OPTiMのデザインシステム「nucleus」の軌跡と広げ方
optim
0
120
Kotlinで型安全にバイテンポラルデータを扱いたい! ReladomoラッパーをAIと実装してみた話
itohiro73
3
120
様々なファイルシステム
sat
PRO
0
270
DMMの検索システムをSolrからElasticCloudに移行した話
hmaa_ryo
0
290
DSPy入門
tomehirata
6
730
AIを使ってテストを楽にする
kworkdev
PRO
0
340
ストレージエンジニアの仕事と、近年の計算機について / 第58回 情報科学若手の会
pfn
PRO
4
920
Amazon Q Developer CLIをClaude Codeから使うためのベストプラクティスを考えてみた
dar_kuma_san
0
210
プロダクト開発と社内データ活用での、BI×AIの現在地 / Data_Findy
sansan_randd
1
680
serverless team topology
_kensh
3
250
オブザーバビリティと育てた ID管理・認証認可基盤の歩み / The Journey of an ID Management, Authentication, and Authorization Platform Nurtured with Observability
kaminashi
2
1.5k
Featured
See All Featured
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
It's Worth the Effort
3n
187
28k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
10
630
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
A better future with KSS
kneath
239
18k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
285
14k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
116
20k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
23
1.5k
Art, The Web, and Tiny UX
lynnandtonic
303
21k
Intergalactic Javascript Robots from Outer Space
tanoku
272
27k
Making Projects Easy
brettharned
120
6.4k
The Cost Of JavaScript in 2023
addyosmani
55
9.1k
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