7.4 Go语言中并发运行数量

Posted 孙琦Ray

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了7.4 Go语言中并发运行数量相关的知识,希望对你有一定的参考价值。

基本概念

自 Go 1.5 开始,Go的GOMAXPROCS 默认值已经设置为CPU的核数,这允许我们的Golang程序充分使用机器的每一个 CPU, 最大程度的提高我们程序的并发性能。Golang的调度器采用M-P-G

  • G 代表 goroutine,即用户创建的 goroutines
  • P 代表 Logical Processor,是类似于 CPU 核心的概念,其用来控制并发的 M 数量
  • M 是操作系统线程。在绝大多数时候,P 的数量和 M 的数量是相等的。每创建一个 P, 就会创建一个对应的 M

通过设置GOMAXPROCS环境变量可以控制P的数量

export GOMAXPROCS=1

来看下程序中通过runtime获取该变量

package main

import (
    "fmt"
    "runtime"
)

以上是关于7.4 Go语言中并发运行数量的主要内容,如果未能解决你的问题,请参考以下文章

go语言学习笔记 — 进阶 — 并发编程:调整并发的运行性能(GOMAXPROCS)

Go语言为并发而生

go语言学习笔记 — 进阶 — 并发编程(11):同步sync,等待组(sync.WaitGroup)—— 保证在并发环境中完成指定数量的任务

go语言并发编程(高级)

我的Go+语言初体验——零基础学习 Go+ 爬虫

go语言介绍