美文网首页并发(个人收集)
Go语言调整并发的运行性能

Go语言调整并发的运行性能

作者: 码二哥 | 来源:发表于2020-02-14 08:34 被阅读0次

参考:
http://c.biancheng.net/view/94.html

关键点

通过关键词汇,实现快速理解,记忆目的

其实,就一句话,Go语言可以灵活调整程序是单核执行,还是多核执行,多核执行的话,可以设置CPU的数量
1、Go的runtime里自带一个任务调度器

2、任务调度器目的

可以高效地将 CPU资源分配给每一个任务

也就是即使、高效的将CPU任务关联对应起来

3、如何查询当前服务器中,CPU核数呢?

runtime.NumCPU() 查询 CPU 数量

查询CPU核数
4、如何设置Go程序运行时所需要CPU核数?或者说,如何设置单核执行,还是多核执行呢?
runtime.GOMAXPROCS(逻辑CPU数量)

5、但是,一般建议修改这个值,让调度器自己去处理这些事情

在 Go语言程序运行时(runtime)实现了一个小型的任务调度器。这套调度器的工作原理类似于操作系统调度线程,Go 程序调度器可以高效地将 CPU 资源分配给每一个任务。传统逻辑中,开发者需要维护线程池中线程与 CPU 核心数量的对应关系。同样的,Go 地中也可以通过 runtime.GOMAXPROCS() 函数做到,格式为:
runtime.GOMAXPROCS(逻辑CPU数量)
这里的逻辑CPU数量可以有如下几种数值:

  • <1:不修改任何数值。
  • =1:单核心执行。
  • >1多核并发执行。

一般情况下,可以使用 runtime.NumCPU() 查询 CPU 数量,并使用 runtime.GOMAXPROCS() 函数进行设置,例如:
runtime.GOMAXPROCS(runtime.NumCPU())
Go 1.5 版本之前,默认使用的是单核心执行。从 Go 1.5 版本开始,默认执行上面语句以便让代码并发执行,最大效率地利用 CPU。

GOMAXPROCS 同时也是一个环境变量,在应用程序启动前设置环境变量也可以起到相同的作用。

相关文章

  • Go语言调整并发的运行性能

    参考:http://c.biancheng.net/view/94.html 关键点 通过关键词汇,实现快速理解,...

  • 13 Go并发编程初探

    一、Go并发编程概述 Go以并发性能强大著称,在在语言级别就原生支持,号称能实现百万级并发,并以此独步江湖,本专题...

  • Go语言并发

    Go语言并发 Go语言级别支持协程,叫做goroutine Go 语言从语言层面支持并发和并行的开发操作 Go并发...

  • Go基础语法(九)

    Go语言并发 Go 是并发式语言,而不是并行式语言。 并发是指立即处理多个任务的能力。 Go 编程语言原生支持并发...

  • 一文读懂 Go sync.Cond 设计

    Go 语言通过 go 关键字开启 goroutine 让开发者可以轻松地实现并发编程,而并发程序的有效运行,往往离...

  • Go 并发原理

    Go语言是为并发而生的语言,Go语言是为数不多的在语言层面实现并发的语言;也正是Go语言的并发特性,吸引了全球无数...

  • 【Golang】CSP并发模型与MPG调度模型

    欢迎关注微信公众号:全栈工厂 Go语言的高并发性能一直是大家最关注的点,Go语言把原本复杂的并发编程通过协程的方式...

  • 兔起鹘落全端涵盖,Go lang1.18入门精炼教程,由白丁入鸿

    Go lang,为并发而生的静态语言,源于C语言又不拘泥于性能,高效却不流于古板,Python灵活,略输性能,Ja...

  • QOR,用Go语言快速搭建CMS和电子商务的库

    Go语言,兼具语法简单、高并发、高性能的特点,在网络编程领域受到欢迎。(Go语言的介绍很多,就不再赘述,还不了解G...

  • GO语言初级学习之代码案例13 (QQ群聊)

    @(go语言 黑马)[GO语言] 并发聊天室 题目:利用Go语言高并发的特性,编写一个类似QQ群聊功能的并发聊天服...

网友评论

    本文标题:Go语言调整并发的运行性能

    本文链接:https://www.haomeiwen.com/subject/mnzrfhtx.html