0%

go语言的并发机制

go语言并发原理

Go不推荐用共享内存的方式传递数据,而推荐使用channel(或称“通道” )。channel主要用来在多个goroutine之间传递数据,并且还

会保证整个过程的并发安全性。不过,作为可选方法,Go依然提供了一些传统的同步方法 (比如互斥量、 条件变量等)。

Go的并发机制指的是用于支撑goroutine 和channel的底层原理,说到这个就不得不提go语言的调度模型,GMP。

GMP调度模型

说起Go的线程实现模型,有3个必知的核心元素,它们支撑起了这个模型的主框架,
简要说明如下:

  • M: machine的缩写。一个M代表一个内核线程,或称“工作线程”。
  • P: processor的缩写。一个P代表执行一个Go代码片段所必需的资源(或称“上下文环境”)。
  • G: goroutine的缩写。一个G代表一 个Go代码片段。前者是对后者的一种封装。

.未完待续~~~

-------------本文结束感谢您的阅读-------------
打赏一瓶矿泉水