aaarticlea/jpeg;base64,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o6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2dri4+Tl5ufo6ery8/T19vf4+fr/2wBDAAICAgICAgMCAgMFAwMDBQYFBQUFBggGBgYGBggKCAgICAgICgoKCgoKCgoMDAwMDAwODg4ODg8PDw8PDw8PDw//2wBDAQICAgQEBAcEBAcQCwkLEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBD/3QAEADX/2gAMAwEAAhEDEQA/AP38ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAP/0P38ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAP/0f38ooooAKKKKACiiigAooooAKKKKACiiigAooooAKQnHNLUEjKB+8+7+VAEoJxk8GlBBqEbfvHvUqHK5oAdRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUe1ACE0bvWgjtiuQ8Z+Jbfwno8mrT/P5ePlHU5NGoXR129c7e9IrqzFR1HWuS8K+KLPxZo0WqWgwJOq9xiuriwc7elFu4rktFFFAwooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD/9L9/KKKKACiiigAooooAKKKKACiiigAooooAKY77SB1JpxOKikycccUAOZ8Zz2r54+JfirW77Vk0DwrMY/sh3XcgGdo6j65r2HxN4gtfD2iXGo3bbY0GAe5LcD9a8R8O20xgbVL8bZ70kvnkkfw/pXVh6HMcmJr8h7F4M8RReJtFgvM/vEG117gjj9a7CLOWx93tXzj4av08LeL101/3drrJOwn7q7Bz+dfRltjZwd3vWFak4yNqNXmRYoooqDUKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKaTginVG4JxzxQ2BH5wRWduFHevnXxFqNz4w8XCyVdum6ZkOeol3D+lel+PfFaeG9CklC77mX5Y0HVsnB/KvNdCszp9lGt1zLJlmPru5/Su7B0OZ3ZwY2vyx0HeFL+Pwr4tOmA7LLU+Ix/Cu0c19DQGMLhK+dfEGlJqenNGD5cseGDjqu3nj616t4A14634fhmdgZkyrL3G3gZ+tTjqXLLQMDW5lqd5k4zikBzwetMDbxlTginqcjNcZ3jqKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA//0/38ooooAKKKKACiiigAooooAKKKKACiiigBCM1GwGeTT2bbXHeN/EcXh7Q5rsfNKw2oO+W4/SnFXegnKyueR+Orv/hJvEa6Ez7rXTiDMB0fdyPyrYaOJRiJcYAGPpXN+GtJm0yxaS8bzry5O5pD1wTkD8q6YHnYRtA6ivdwtHlWp8/iqvNIxde0j+19PFq33h8yEcEFeetel+AfET6rokS3Jzdx5Vh3wvAzXGfJs8ljkP8Aeb0rndOuJvCPilL63b/iW6kcT+iFeB+ZrPHUdOZHTga1nys+llcsenFOBz1qpbsjxrIjfKwBx9atKwYbh3rxT2B1FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAU0ttp1IcHr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7PsP+fWL/vhf8KUabYHn7LF/3wv+FaFGcUtRfIzhplh1a1iP/bNf8Kki0+yhfzYoER/VVAP6VeyaXrTUhaESxAH5TgelSou0YpQMUtAwooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD/9L9/KKKKACiiigAooooAKCM8UUUANCgdKUUtFABRRRQAUUUUAFZ2r86Te/9cJP/AEE1o1n6v/yCb3/rhJ/6CaAPmD9lbjw5fj/ptJ/6Ga+r6+UP2V/+Rdv/APrtJ/6Ga+rh1NAC0UUUAFFFFACYxS0UUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAmD60tFFABSYzS0UAJgUYFLRQAmBRgUtFAHx18H8H9pf4wj/AK8P/QK+wwAa+PPg9/ycx8Yf+3D/ANAr7EFABgUYFLRQAmBRj0paKAEwfWloooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAP//T/fyiiigAooooAKKKKACiiigAooooAKKKKACiiigArP1f/kE3v/XCT/0E1oVn6v8A8gm9/wCuEn/oJoA+YP2V/wDkXb//AK7Sf+hmvq4dTXyj+yv/AMi7f/8AXaT/ANDNfVw6mgBaKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA+Ovg9/wAnMfGH/tw/9Ar7EFfHfwe/5OY+MP8A24f+gV9iCgBaKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAP//U/fyiiigAooooAKKKKACmk4NOpCCaGAZpCwHWjGAe1QNPADhpVBHqRSQE4YGlz3qEXFv/AM9F/MUfaIB1lX8xTAm3Ck3CovtEH/PVfzFJ9og/56r+YoAm3Cs7V3H9lXg7mCT/ANBNW/tF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rTiuRinUUARLHtPBpGt4H/1kat9VBqakOe1AFYWVoDkQIPcKKl8pRxGAo9qd82acM96WoWGhMc5p9FFOwERiDE56Gnqu33NOooAKKKKACiiigAooooAKKKKACiiigAoxRRQAYyMUm0YxS0UAJjjAqMxLn61LTWOBmgD46+EEG39pj4wStzn7Dj/vivsNACM18mfCsCL9oz4qtj/W/Yv0WvrRBxQA7HOaWiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA//0P38ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigArJ1rDaNqAx/y7y/+gGtasfW+NG1A/wDTvL/6AaAPnj9lCQv8MYhjpcXH/ow19PA55r5X/ZIfd8M0HpcXH/ow19U0AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAU1hkYp1FAHyh8OAI/wBob4ikj/W/Zf0Wvq1eRXy34KUQ/tBeNW/56/Z/0WvqRPu0AOooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAP//R/fyiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAE6CsvWedHvwB1t5f8A0A1q1mar/wAgy8T1hk/9BNAHzJ+yV+68BSWp6xTz8/WQ19WA5Jr5S/ZaxFoupWn/ADzmf9XNfVqrgmgB1FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUh6UtFAHy54ZG34+eJm/56eT+i19QJnHNfNOkoIPjtqzf89dn6LX0wOlAC0UUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAH/9L9/KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACjpRTWByCO1AC5ozUW5S3H3h2qtcX1naruuZliPuwoAvZrO1L5rG5wOPKf/wBBNcdqXxI8GafmK7vwCOuBn+VcXqHxz8AwxSW0d2XZlYD5T3FAHDfs2Yin8QWwPMcv82NfViuf4hgmvhb4QfEHw14V13X7rVbgpFqDqYflPYnNfTtj8T/BV/tSO/GZOgIIoA9MMqhtp61JWPZappl8B9iuUkHoGBNaoA/CgB9FJkCgHNAC0UUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFNZtvHUmlyKa3I45oAUtge9NWRW6ViaxrWlaKn2rUrhYgBwCa8D8U/tDaZZlrLwvanUrnkHkoFPbk0AfTO4DrxUb3NvH9+RV+pFfBl98VfiLqQaSS8/s7d0iAD/AK1ztz4m8YakgW91dn+gxigD6AjlhX42zTpIpSXHOR2WvpSOVOgYH8a/MyFL2C+/tKK7YXP9/k111v448e25WOHWCVX1UUAfoQsqMdo7U7dz04r4o0v45eL9HlVdUtf7Uh7vuCbR9K988KfGDwj4lARLoQ3HG6NgRgn3NAHrO8bgPWpM1WV451EkLB0Poc5qWMjG0cYoAkooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD//0/38ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigApCwBx3NLTHOOgyaAFLAYB6msvUtUs9Mhe6vZBFFEMliaz/EfiXS/C+my6jqswjiiGffPYAV8M+LvHut+Pb2SWR2t9NUkJCD98fWgD2nxd8fraBpbTwlbfbX6GXO3b+Br561LW/EniO4e91zUHmDH5Ix8uz2461UW3igVUiXA7L/9epGxuPr3oAri1twM4Yv6liad5KMMOobHTipaKAIzEhG0qMDpx0pBEgZWOcj0OKloxQAlpc6po8pvfD969rcZzySw/I17j4S+Peo2aRWXiy3LKvDXOev/AAEV4cefuil2swKnDjuKAP0N0LxDpXiC0S90u4WaNx2PI/CugU8e9fm74d17VvBV8NQ0KZkSQjfFksDj619teA/H2meMrASwuEvEA8yMnoaAPS80VDEZDnfUoORmgBaKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAprMFGTTqjkzjcO1AEZPOG4z0rx74gfFrSvCUclrZgXeoKMCMHGCfeqfxY+Ji+ELAadp5Euo3QIQD+H1zXx2DJLOb3UGM9xISS596ANLWdZ1/wAXXZ1HxLctMrHMcAO0J+I61U2hMImAV9ufzp7bl+bru6Ug9D170AB9V+960o29SMk9aSigBQcHH8PpTTk5HY0tFAAeVwKgkt4pVwwO8dCp2/yqejJByKAPQ/APxY8Q+D5vsWtym/0tiBGTwYR39zmvszQPEel+I7CPUNJlE0TjPuK/O0LGwZMZHcGun8GeNr/wBqSXGS+mOwEseemelAH6DrKDk4+X1qQHNYmiaxZa5p8Wp6fIJYJ1BGO1bEfcE5NAElFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQB/9T9/KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoziikNACbs8gcVnahqdrptm99dMFSME5PtV8plMZxXy/8e/GLW9tB4R0x/nuyfNIPK7ef1oA8Y8feNbjx9rhuWJTS7diIlB4bsf1rmz1MZ7YwPSo4oljj8qHjHb+dOG7HPTsaAAKB0pec9eKKKACiiigAo470UUALmmhVBzjmlooAXcwB28E1c0TW73wtq8Gq6cTwcyoDw4/+tVKg7dpyMmgD9BvCPinT/FmiwatpzhlccjuCODXTBjnmvin4KeKBoniH+xJ22W2o/cUnhStfaURIGSc5oAsUUDmkAxQAtFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFNbOOOtACFj2GTXL+LfEVt4d0G61a4+7CvAzjJPSunIxnHU18gfH7xPJfana+ELJsQxkm5x+a0AeJ6jqt94i1G58QalkzXbfdP8IU4GPwpThTs6rTT8o6YAAApBkDB60AOHHHakoooAKKKKACiiigApCNw2npS0UAI3zgqfu+lK251KHlfSikO4crQB7J8EfFo0nX28KPLttrn/Uox4XHLcn1r7IiYMSR+dfmZMsqTW91YsYruFgyuPQHJ/Sv0F8A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uenB619Z6V8G/BmnssrW/muvck16hZ6fZ2EYgtIliQdMAUAeK+BfhBp/h0jVNbk+2ag3IJGAv4dK91SGMxCMABPQcU8RgfeOakGO1ACbRjHpSgEDmlooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD/9L9/KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACkxS0UARPFv5J5HSmtbo67HAZPQjNT0UAY82haZOhikt4yh7bRWBL8O/CUxy9iua7eigDhY/hv4QibctiufrW1a+GtJs/9RboMdPlFdBRnFAFNbcRcQhUHcAAVMqE8E8VNRQAzYMcU4DFLRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAIBiloooAaVDDDUbQBgU6igBpUGm+WucipKKAI/LPY0qpjOec0+igBm3n2pcY6U6igBpUE5NKAR3paKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAP/9P9/KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACjGaKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAP/Z" alt="" width="353" />
 
go并发调度模型如上图
M指的是Machine,一个M直接关联了一个线程。
P指的是Processor,代表了M所需的上下文环境,也是处理用户级代码逻辑的处理器。
G指的是Goroutine,其实本质上也是一种轻量级的线程。
 
⾸先是 Processor(简称 P),其作⽤类似 CPU 核,⽤来控制可同时并发执⾏的任务数量。每个⼯作线程都必须绑定⼀个有效 P 才被允许执⾏任务,否则只能休眠,直到有空闲 P 时被唤醒。P 还为线程提供执⾏资源,⽐如对象分配内存、本地任务队列等。线程独享所绑定的 P 资源,可在⽆锁状态下执⾏⾼效操作。
 
进程内的⼀切都在以G⽅式运⾏,包括运⾏时相关服务,以及main.main ⼊口函数。需要指出,G 并⾮执⾏体,它仅仅保存并发任务状态,为任务执⾏提供所需栈内存空间。G 任务创建后被放置在 P 本地队列或全局队列,等待⼯作线程调度执⾏。
 
实际执⾏体是系统线程(简称 M),它和 P 绑定,以调度循环⽅式不停执⾏ G 并发任务。M 通过修改寄存器,将执⾏栈指向 G ⾃带栈内存,并在此空间内分配堆栈帧,执⾏任函数。当需要中途切换时,只要将相关寄存器值保存回 G 空间即可维持状态,任何 M 都可据此恢复执⾏。线程仅负责执⾏,不再持有状态,这是并发任务跨线程调度,实现多路复⽤的根本所在。
 
G自己提供内存栈在M上执行
P保存P执行过程中的数据行,当G被暂停时,SP,SC等寄存器信息会保存在G.sched中,当G被唤醒继续执行时,从之前暂停的位置继续执行,因为G提供内存栈,并记录了上次执行到的位置,G数量很多,P相对较少,在垃圾回收的时候方便定位
P中有一个对列保存G的指针,其实就是一个256个元素的数组,通过两个变量指向对首和对尾,所以这个队列是会出现满的情况的,满了新加的G就只能放到全局队列中
type g struct {
stack stack //栈,两个能容纳任何变量地址的变量
stackguard0 uintptr // offset known to liblink
stackguard1 uintptr // offset known to liblink
_panic *_panic // innermost panic - offset known to liblink
_defer *_defer // innermost defer
m *m // current m; offset known to arm liblink
sched gobuf //存放g上下文信息,g被停止调度时,会将上线文信息存在这里,唤醒后可继续调度
syscallsp uintptr // if status==Gsyscall, syscallsp = sched.sp to use during gc
syscallpc uintptr // if status==Gsyscall, syscallpc = sched.pc to use during gc
stktopsp uintptr // expected sp at top of stack, to check in traceback
param unsafe.Pointer // passed parameter on wakeup
atomicstatus uint32
stackLock uint32 // sigprof/scang lock; TODO: fold in to atomicstatus
goid int64 //就像线程有id,g也有id
waitsince int64 // approx time when the g become blocked
waitreason string // if status==Gwaiting
schedlink guintptr //指向另一个G,全局G就是通过这个字段连在一起的
preempt bool // preemption signal, duplicates stackguard0 = stackpreempt
paniconfault bool // panic (instead of crash) on unexpected fault address
preemptscan bool // preempted g does scan for gc
gcscandone bool // g has scanned stack; protected by _Gscan bit in status
gcscanvalid bool // false at start of gc cycle, true if G has not run since last scan; TODO: remove?
throwsplit bool // must not split stack
raceignore int8 // ignore race detection events
sysblocktraced bool // StartTrace has emitted EvGoInSyscall about this goroutine
sysexitticks int64 // cputicks when syscall has returned (for tracing)
traceseq uint64 // trace event sequencer
tracelastp puintptr // last P emitted an event for this goroutine
lockedm *m
sig uint32
writebuf []byte
sigcode0 uintptr
sigcode1 uintptr
sigpc uintptr
gopc uintptr // pc of go statement that created this goroutine
startpc uintptr // 被执行的函数
racectx uintptr
waiting *sudog // sudog structures this g is waiting on (that have a valid elem ptr); in lock order
cgoCtxt []uintptr // cgo traceback context
labels unsafe.Pointer // profiler labels
timer *timer // cached timer for time.Sleep
gcAssistBytes int64
}
go func()到底做了什么?
对应函数runtime.newproc
1:从执行当前方法的G所在P的空闲G列表中取一个G,如果没有就从全局list中取一个,毕竟G还是经常使用,用完的G并不是马上释放,而是放回P的空闲列表中反复利用,如果还是没有空闲的G,就new一个malg(2048),G的栈大小为2K
2:如果有参数会将参数拷贝到G的栈上,将G状态改成可运行状态
3:如果P的G队列没满,将G加入队尾
4:如果P的G队列满了,就取出G队列的前面一半+当前G,共129个G加入全局队列
加入队列后,等待被调度
 
全局队列G存取
G本身有个字段schedlink指向另一个G,天生就是链表的一个节点,全局队列其实就是两个指针,一个指向队首,一个指向队尾,队尾的存在就是方便入队列
入全局队列:前面说过将P中的一半+1个G(129)加入全局队列,并不是一个个入队列,而是将这个129个G的首接入全局队列的尾,将全局队列的尾改成这129个G的尾
出全局队列:当系统开始调度的时候,会从P本地G队列取一个可用G执行,如果没有,则从全局队列中取,最多取128个,返回第一个用于执行,剩余的存入本地G队列中,毕竟操作本地队列不用加锁,操作全局队列需要加锁
 
findrunnable查找可执行的G
1:本地队列:从M对应的P的G队列中找(runqget),队列不为空,返回对列首个元素,对首指针指向下一个元素,当对首和对尾指向同一个元素时表示队列为空,访问本地队列中的G不需要加锁
2:全局队列:从全局队列中找(globrunqget),从全局队列中取G不是一次取一个,毕竟访问全局队列是要加锁的,所以全局队列有多少取多少,最多取P队列容量一半128个,将这些G存入P的G队列中
3:⽹络任务(netpoll)
4:从其他P任务队列取,拿一半
所有目的就是多核齐心协力以最快的速度完成任务,总不能出现某个P的本地队列还有多个人,其他P都在睡大觉吧,最后如果还是没找到一个可用的G,那就大家一起睡大觉,等着被叫醒
type p struct {
lock mutex
id int32
status uint32 // one of pidle/prunning/...
link puintptr
schedtick uint32 // incremented on every scheduler call
syscalltick uint32 // incremented on every system call
sysmontick sysmontick // last tick observed by sysmon
m muintptr // back-link to associated m (nil if idle)
mcache *mcache //方便小对象的分配,一个p一个,不需要加锁
racectx uintptr
deferpool [][]*_defer // pool of available defer structs of different sizes (see panic.go)
deferpoolbuf [][]*_defer
// Cache of goroutine ids, amortizes accesses to runtime·sched.goidgen.
goidcache uint64
goidcacheend uint64
// Queue of runnable goroutines. Accessed without lock.
runqhead uint32 //队头
runqtail uint32 //队尾
runq []guintptr //G循环队列
runnext guintptr //高优先级的G,会先执行
// Available G's (status == Gdead)
gfree *g //空闲G列表
gfreecnt int32 //空闲G数量
sudogcache []*sudog
sudogbuf []*sudog
tracebuf traceBufPtr
// traceSweep indicates the sweep events should be traced.
// This is used to defer the sweep start event until a span
// has actually been swept.
traceSweep bool
// traceSwept and traceReclaimed track the number of bytes
// swept and reclaimed by sweeping in the current sweep loop.
traceSwept, traceReclaimed uintptr
palloc persistentAlloc // per-P to avoid mutex
// Per-P GC state
gcAssistTime int64 // Nanoseconds in assistAlloc
gcBgMarkWorker guintptr
gcMarkWorkerMode gcMarkWorkerMode
gcw gcWork
runSafePointFn uint32 // if 1, run sched.safePointFn at next safe point
pad [sys.CacheLineSize]byte
}
 
永远不会退出的调度(schedule)
当一个G执行完成后,会继续调用调度函数schedule,死循环就产生了
// goexit continuation on g0.
func goexit0(gp *g) {
_g_ := getg()
casgstatus(gp, _Grunning, _Gdead)
dropg()
_g_.m.locked =
gfput(_g_.m.p.ptr(), gp)
schedule()
}
整体执行流程
mstart() => schedule() => findrunnable() => execute() => func() => goexit() => schedule()
M就绪  =>调度 => 查找可调度G => 执行G => 具体方法 => 执行完成 => 继续调度
入口函数是 _rt0_amd64_linux,需要说明的是,不同平台的入口函数名称会有所不同,该方法会调用runtime.rt0_go汇编。
rt0_go 做了大量的初始化工作,runtime.args 读取命令行参数、runtime.osinit 读取 CPU 数目,runtime.schedinit初始化Processor数目,最大的Machine数目等等。
 
除此之外,我们还看到了两个奇怪的 g0 和 m0 变量。m0 Machine 代表着当前初始化线程,而 g0 代表着初始化线程 m0 的 system stack,似乎还缺一个 p0 ?
实际上所有的 Processor 都会放到 allp 里。runtime.schedinit 会在调用 procresize 时为 m0 分配上 allp[0] 。所以到目前为止,初始化线程运行模式是符合上文提到的 G/P/M 模型的。
 
大量的初始化工作做完之后,会调用 runtime.newproc 为 mainPC 方法生成一个 Goroutine。 虽然 mainPC 并不是我们平时写的那个 main 函数,但是它会调用我们写的 main 函数,所以 main 函数是会以 Goroutine 的形式运行。
TEXT _rt0_amd64_linux(SB),NOSPLIT,$-
LEAQ (SP), SI // argv
MOVQ (SP), DI // argc
MOVQ $main(SB), AX
JMP AX TEXT main(SB),NOSPLIT,$-
MOVQ $runtime·rt0_go(SB), AX
JMP AX TEXT runtime·rt0_go(SB),NOSPLIT,$
LEAQ runtime·g0(SB), CX
MOVQ CX, g(BX)
LEAQ runtime·m0(SB), AX // save m->g0 = g0
MOVQ CX, m_g0(AX)
// save m0 to g0->m
MOVQ AX, g_m(CX)
CALL runtime·args(SB)
CALL runtime·osinit(SB) //获取cpu数量,页大小
CALL runtime·schedinit(SB) //调度初始化
// create a new goroutine to start program
MOVQ $runtime·mainPC(SB), AX // entry,执行runtime.main
CALL runtime·newproc(SB)
// start this M
CALL runtime·mstart(SB) MOVL $0xf1, 0xf1 // crash
RET DATA runtime·mainPC+(SB)/,$runtime·main(SB)
GLOBL runtime·mainPC(SB),RODATA,$ package runtime
// The main goroutine.
func main() {
// Allow newproc to start new Ms.
mainStarted = true
gcenable()
fn := main_init // make an indirect call, as the linker doesn't know the address of the main package when laying down the runtime
fn()
fn = main_main // make an indirect call, as the linker doesn't know the address of the main package when laying down the runtime
fn()
exit()
}
参考
https://github.com/golang/go    (go源码)
https://github.com/qyuhen/book  (雨痕,内容很棒很全面,已出书)
 

go并发调度原理学习的更多相关文章

  1. Go的并发调度原理

    Go语言是为并发而生的语言,Go语言是为数不多的在语言层面实现并发的语言:也正是Go语言的并发特性,吸引了全球无数的开发者.   并发(concurrency)和并行(parallellism) 并发 ...

  2. 并发编程原理学习:synchronized关键字

    概述 关键字synchronized可以修饰方法或者以同步代码块的形式来进行使用,它主要确保多个线程在同一时刻只能有一个线程处于方法或者同步块中,它保证了线程对变量访问的可见性和排他性. 同步代码块 ...

  3. 并发编程原理学习-reentrantlock源码分析

    ReentrantLock基本概念 ​ ReentrantLock是一个可重入锁,顾名思义,就是支持重进入的锁,它表示该锁能够支持一个线程对资源的重复加锁,并且在获取锁时支持选择公平模式或者非公平模式 ...

  4. python并发编程之进程、线程、协程的调度原理(六)

    进程.线程和协程的调度和运行原理总结. 系列文章 python并发编程之threading线程(一) python并发编程之multiprocessing进程(二) python并发编程之asynci ...

  5. Goroutine并发调度模型深度解析之手撸一个协程池

    golanggoroutine协程池Groutine Pool高并发 并发(并行),一直以来都是一个编程语言里的核心主题之一,也是被开发者关注最多的话题:Go语言作为一个出道以来就自带 『高并发』光环 ...

  6. Atitit.并发编程原理与概论 attilax总结

    Atitit.并发编程原理与概论 attilax总结 1. 并发一般涉及如下几个方面:2 2. 线程安全性 ( 2.2 原子性 2.3 加锁机制2 2.1. 线程封闭3.3.1Ad-hoc线程封闭 3 ...

  7. golang channel的使用以及调度原理

    golang channel的使用以及调度原理 为了并发的goroutines之间的通讯,golang使用了管道channel. 可以通过一个goroutines向channel发送数据,然后从另一个 ...

  8. 弄懂goroutine调度原理

    goroutine简介 golang语言作者Rob Pike说,"Goroutine是一个与其他goroutines 并发运行在同一地址空间的Go函数或方法.一个运行的程序由一个或更多个go ...

  9. go--->共享内存和通信两种并发模式原理探究

    共享内存和通信两种并发模式原理探究 并发理解 人类发明计算机编程的本质目的是为了什么呢?毫无疑问是为了解决人类社会中的各种负责业务场景问题.ok,有了这个出发点,那么想象一下,比如你既可以一心一意只做 ...

随机推荐

  1. vim永久显示行号

    先复制一份vim配置模板到个人目录下,如果目录不对的,自己找到这个文件 cp /usr/share/vim/vim74/vimrc_example.vim ~/.vimrc 注:redhat的路径为  ...

  2. 【Canal源码分析】Sink及Store工作过程

    一.序列图 二.源码分析 2.1 Sink Sink阶段所做的事情,就是根据一定的规则,对binlog数据进行一定的过滤.我们之前跟踪过parser过程的代码,发现在parser完成后,会把数据放到一 ...

  3. 原生wcPop.js消息提示框(移动端)、内含仿微信弹窗效果

    wcPop.js移动端消息对话框插件是之前的wxPop.js的升级版,优化了js和css,并且新增了仿微信弹窗效果, 是一款含有多种情景模式的原生模态消息对话框代码,可用于替代浏览器默认的alert弹 ...

  4. springcloud学习资料汇总

    收集Spring Cloud相关的学习资料 学习Spring Cloud首先需要了解Spring Boot,不了解Spring Boot的同学戳这里Spring Boot学习资料汇总 重点推荐:Spr ...

  5. 死磕 java集合之DelayQueue源码分析

    问题 (1)DelayQueue是阻塞队列吗? (2)DelayQueue的实现方式? (3)DelayQueue主要用于什么场景? 简介 DelayQueue是java并发包下的延时阻塞队列,常用于 ...

  6. Unity3D开发游戏世界天空盒

    天空盒 , 顾名思义是 给游戏场景 添加一个 天空背景 让游戏更加精美,更具有魅力 添加天空盒 有两种方式 1 : 在当前相机上添加skybox 2 : 在当前场景上添加skybox 上面的两种方式的 ...

  7. C# 添加Excel表单控件(Form Controls)

    在Excel中,添加的控件可以和单元格关联,我们可以操作控件来修改单元格的内容,在下面的文章中,将介绍在Excel中添加几种不同的表单控件的方法,包括: 添加文本框(Textbox) 单选按钮(Rad ...

  8. Angular(02)-- Angular-CLI命令

    声明 本系列文章内容梳理自以下来源: Angular 官方中文版教程 官方的教程,其实已经很详细且易懂,这里再次梳理的目的在于复习和巩固相关知识点,刚开始接触学习 Angular 的还是建议以官网为主 ...

  9. SpaceSyntax【空间句法】之DepthMapX学习:唠叨(目录)

    最近花大力气学习了空间句法这一理论,以及其相关软件DepthMapX. 我觉得吧,你要是能搜索到这理论,这一软件名,这篇博客,那我甚至都不用介绍这软件是干什么用的——好吧,还是会说一下的. 虽然不知道 ...

  10. Odoo Tech World 2018(上海)互联网开源技术大会通告

    会议概述 点击进入活动报名通道 高成本的软件开发,耗时的系统安装,繁琐的操作培训… 这一系列问题都是企业数字化管理的痛点, "软件"成为发展数企业数字化转型的瓶颈, 无论是小厂家或 ...