- 介绍下Go语言的GMP模型
1、什么是GPM模型,有什么作用
- golang通过goroutine(携程)来实现高并发,GPM是Golang实现携程的调度策略,是Go实现Goroutine的设计模型,
- 包括三个组成部分Goroutine(调度器程)、、Machin(线程) 、Processor(处理器)
G:表示goroutine,每个goroutine都有自己的栈空间,定时器,初始化的栈空间
M:抽象为内核线程,记录系统内核线程栈信息,从P上获得Goroutine执行
P:调度器,负责维护一个本地的goroutine队列
2、GPM模型的前身GM模型
- go语言早期的版本中,携程的实现模型还是GM模型,
3、为什么要从GM模型升级到GPM模型
- 对GO语言的channl使用要注意什么
- channl管道用来做并发时携程间通信
- Go中数组和slice的区别
- 数组是固定长度的,初始化时需要定义长度,slice的长度是动态扩展
- 数组是地址传递,slice是值传递