goroutineの仕組みについて
by
sivchari
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
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~