goroutineの仕組みについて
by
sivchari
×
Copy
Open
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Slide 1
Slide 1 text
goroutineͷΈʹ͍ͭͯ ~Go Conference 2021 Autumn~
Slide 2
Slide 2 text
w 5BLVNB4IJCVZB!TJWDIBSJ w ଔ$ZCFS"HFOU ༧ఆ w όοΫΤϯυΤϯδχΞ w MJOUFS 044͕͖ ࣗݾհ
Slide 3
Slide 3 text
w (PͷSVOUJNFΛࢧ͑Δཁૉ w HPSPVUJOFͷϥΠϑλΠϜ w HPSPVUJOFͷεέδϡʔϦϯά ͢͜ͱ
Slide 4
Slide 4 text
~Let's Go~
Slide 5
Slide 5 text
~GoͷruntimeΛࢧ͑Δཁૉ~
Slide 6
Slide 6 text
w (HPSPVUJOF w .ϚγϯεϨου w 1HPSPVUJOFΛ࣮ߦ͢ΔϦιʔε w TDIFEάϩʔόϧͰϢχʔΫɺશͯͷ1Ͱڞ༗͞ΕΔ ొਓ
Slide 7
Slide 7 text
શମ૾ TDIFE SVOR NJEMF QJEMF ( 1 ( ( ( ( ( ( 1 . . . 1 1 1 . . ( ( ( SVOR ( ( ( ( ( ( SVOR ( ( ( ( ( (
Slide 8
Slide 8 text
શମ૾ TDIFE SVOR NJEMF QJEMF ( 1 ( ( ( ( ( ( 1 . . . 1 1 1 . . ( ( ( SVOR ( ( ( ( ( ( SVOR ( ( ( ( ( (
Slide 9
Slide 9 text
w NH ( Λ࣮ߦ͍ͯ͠ΔN . w TDIFE1$ͳͲͷΛอ࣋͢ΔελοΫ w BUPNJDTUBUVTHPSPVUJOFͷঢ়ଶ ͭ w HPQDHPSPVUJOFΛੜͨ͠HPͷ1$ w TUBSUQDHPSPVUJOFͷ1$ G
Slide 10
Slide 10 text
શମ૾ TDIFE SVOR NJEMF QJEMF ( 1 ( ( ( ( ( ( 1 . . . 1 1 1 . . ( ( ( SVOR ( ( ( ( ( ( SVOR ( ( ( ( ( (
Slide 11
Slide 11 text
w HεέδϡʔϥʔͷͨΊͷHPSPVUJOF w DVSHݱࡏ࣮ߦ͍ͯ͠ΔHPSPVUJOF w Q(PͷίʔυΛ࣮ߦ͢ΔͨΊʹඥͮ͘Q 1 M
Slide 12
Slide 12 text
શମ૾ TDIFE SVOR NJEMF QJEMF ( 1 ( ( ( ( ( ( 1 . . . 1 1 1 . . ( ( ( SVOR ( ( ( ( ( ( SVOR ( ( ( ( ( (
Slide 13
Slide 13 text
w NQ 1 ʹඥͮ͘N . w SVOR1͝ͱʹอ࣋͢ΔH ( ͷMPDBMRVFVF w HGSFF࣮ߦ͍ͯ͠ͳ͍ར༻ՄೳͳH ( P
Slide 14
Slide 14 text
શମ૾ TDIFE SVOR NJEMF QJEMF ( 1 ( ( ( ( ( ( 1 . . . 1 1 1 . . ( ( ( SVOR ( ( ( ( ( ( SVOR ( ( ( ( ( (
Slide 15
Slide 15 text
w NJEMFJEMFͷN . Λอ࣋ w QJEMFJEMFͷQ 1 Λอ࣋ w SVORH ( Λอ࣋͢ΔHMPCBMRVFVF sched
Slide 16
Slide 16 text
~goroutineͷϥΠϑλΠϜ~
Slide 17
Slide 17 text
αϯϓϧίʔυ
Slide 18
Slide 18 text
newproc . 1 ( SVOR $SFBUFHPSPVUJOF
Slide 19
Slide 19 text
newproc1 ( . 1 ( SVOR
Slide 20
Slide 20 text
newproc ( . 1 ( SVOR
Slide 21
Slide 21 text
runqput ( . 1 ( SVOR (
Slide 22
Slide 22 text
runqputslow TDIFE . 1 ( SVOR (
Slide 23
Slide 23 text
globruqputbatch TDIFE . 1 ( SVOR ( (
Slide 24
Slide 24 text
~goroutineͷεέδϡʔϦϯά~
Slide 25
Slide 25 text
schedule TDIFE . 1 ( SVOR (
Slide 26
Slide 26 text
globrunqget TDIFE ( . 1 ( SVOR (
Slide 27
Slide 27 text
schedule . 1 ( SVOR (
Slide 28
Slide 28 text
runqget ( . 1 ( SVOR (
Slide 29
Slide 29 text
schedule . 1 ( SVOR
Slide 30
Slide 30 text
fi ndrunnable ( *0 ❌ @(XBJUJOH@(SVOOBCMF ( . 1 ( SVOR
Slide 31
Slide 31 text
1 . ( SVOR 1 . ( SVOR ( ( ( ( ( ( fi ndrunnable
Slide 32
Slide 32 text
stealWork/runqsteal 1 . ( SVOR 1 ( SVOR ( ( ( ( ( ( ( ( ( .
Slide 33
Slide 33 text
execute ( . 1 ( SVOR
Slide 34
Slide 34 text
goexit ( . 1 ( SVOR
Slide 35
Slide 35 text
goexit1 ( . 1 ( SVOR
Slide 36
Slide 36 text
mcall ( . 1 ( SVOR
Slide 37
Slide 37 text
UPHGSFF goexit0 ( . 1 ( SVOR
Slide 38
Slide 38 text
αϯϓϧίʔυ IUUQTQMBZHPMBOHPSHQX81SL$YO)G
Slide 39
Slide 39 text
w (PಠࣗͷεέδϡʔϥʔͰHPSPVUJOFΛ੍ޚ͍ͯ͠Δ w ֤1͕SVORΛ࣋ͭ͜ͱͰϓϩάϥϜͷޮ͕ߴ·Δ w ෳࡶͳ࣮ͷ͓͔͛Ͱ؆୯ʹฒߦॲཧΛ࣮Ͱ͖Δ ·ͱΊ
Slide 40
Slide 40 text
~Tank you for watching~