- goroutine 是一种非常轻量级的实现,可在单个进程里执行成千上万的并发任务,它是Go语言并发设计的核心。
-
说到底 goroutine 其实就是线程,但是它比线程更小,十几个goroutine可能体现在底层就是五六个线程,而且Go语言内部也实现了 goroutine 之间的内存共享
。 -
主进程退出 子进程也跟着退出
。
runtime.Gosched()
用于让出CPU时间片。让别的先执行,执行完再回来执行它
。
runtime.Goexit()
终止当前协程
,而其它的goroutine并不会受此影响。runtime.Goexit在终止当前goroutine前会先执行此goroutine的还未执行的defer语句。请注意千万别在主函数调用runtime.Goexit,因为会引发panic。
runtime.GOMAXPROCS()
用来设置可以并行计算的CPU核数最大值,并返回之前的值。