package main

import (
"runtime"
"fmt"
) func main() {
n := runtime.GOMAXPROCS()//指定使用核进行运算,这个函数的返回值是当前机器的cpu个数
   fmt.Println(" n = ", n) 

    for true { 
    go fmt.Print()
    fmt.Print()
  }
}

会发现打印结果里有大片的1或者0


那如果指定两个核呢

...
n := runtime.GOMAXPROCS()
...

那么结果会很不一样


可以看得出来并发的时间片出让明显快了很多

那么4核

n := runtime.GOMAXPROCS()
...
for true {
go fmt.Print(1)
go fmt.Print(2)
go fmt.Print(3)
fmt.Print(0)
}
...

虽然看不出来啥,

233123230003212132200000311131231231200023312231310002011331313330002222212132000003123131231231200123112323001131230002

[GO]gomaxprocs的使用的更多相关文章

  1. Golang进程权限调度包runtime三大函数Gosched、Goexit、GOMAXPROCS

    转自:https://www.cnblogs.com/wt645631686/p/9656046.html runtime.Gosched(),用于让出CPU时间片,让出当前goroutine的执行权 ...

  2. Golang 的 协程调度机制 与 GOMAXPROCS 性能调优

    作者:林冠宏 / 指尖下的幽灵 掘金:https://juejin.im/user/587f0dfe128fe100570ce2d8 博客:http://www.cnblogs.com/linguan ...

  3. Golang cpu的使用设置--GOMAXPROCS

    以下测试,使用的Go版本是1.8.3 不设置 如果没有调用runtime.GOMAXPROCS 去设置CPU,Golang默认使用所有的cpu核. 测试机器CPU有4个核,测试代码开启4个gorout ...

  4. go语言之进阶篇runtime包中 Gosched Goexit GOMAXPROCS的使用

    一.runtime包 1.Gosched的使用 runtime.Gosched() 用于让出CPU时间片,让出当前goroutine的执行权限,调度器安排其他等待的任务运行,并在下次某个时候从该位置恢 ...

  5. 浅析runtime包中的三个方法Gosched、Goexit、GOMAXPROCS

    Gosched 暂停当前goroutine,使其他goroutine先行运算.只是暂停,不是挂起,当时间片轮转到该协程时,Gosched()后面的操作将自动恢复 未使用Gosched的代码 packa ...

  6. Go语言GOMAXPROCS(调整并发的运行性能)

    在 Go语言程序运行时(runtime)实现了一个小型的任务调度器.这套调度器的工作原理类似于操作系统调度线程,Go 程序调度器可以高效地将 CPU 资源分配给每一个任务.传统逻辑中,开发者需要维护线 ...

  7. Golang中的Gosched、Goexit、GOMAXPROCS

    Golang进程权限调度包runtime三大函数Gosched,Goexit,GOMaXPROCS runtime.Gosched(),用于让出CPU时间片,让出当前goroutine的执行权限,调度 ...

  8. 使用C# 和Consul进行分布式系统协调

    随着大数据时代的到来,分布式是解决大数据问题的一个主要手段,随着越来越多的分布式的服务,如何在分布式的系统中对这些服务做协调变成了一个很棘手的问题.今天我们就来看看如何使用C# ,利用开源对分布式服务 ...

  9. GO 1.5 代码编译安装 [centos7 64位]

    2015年8月,Go 1.5 正式发布,这是 Go 的第六个重要版本. 此版本包括大量重大改进,编译工具链从 C 转换到 Go,从 Go 代码库中完全移除 C 代码.完完全全重新设计了垃圾收集器,减少 ...

随机推荐

  1. 查询mysql数据库启动时间抛异常

    mysql 5.7.10使用dbforget Studio 连接异常 提示:The'INFORMATION_SCHEMA.SESSION_VARIABLES' feature is dis 查看mys ...

  2. 009:JSON

    一. MySQL JSON类型 1. JSON介绍 什么是 JSON ? JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation) JSON 是轻量级 ...

  3. (转) C#中Timer使用及解决重入(多线程同时调用callback函数)问题

    原文链接: http://www.cnblogs.com/hdkn235/archive/2014/12/27/4187925.html

  4. 利用html5制作一个时钟动画

    <canvas id="clock" width="500" height="500" style="background- ...

  5. 【UVA】10935 Throwing cards away I(STL队列)

    题目 题目     分析 练习STL     代码 #include <bits/stdc++.h> using namespace std; int main() { int n; wh ...

  6. Mac Terminal终端光标的快捷键操作

    2016年08月18日 18:26:06 阅读数:4217 Mac Terminal终端和linux上终端光标的快捷键操作是一样的,都是来自Emacs这个神级的编辑器,由于我以前vim用的多,没怎么用 ...

  7. redis存session问题测试内容

    转至元数据起始   官网,现网由于是双节点,session是存储在redis作为共享的. +1是单节点.目前是存储成文件的 本次的问题根源是 由于 session是存储在redis,所造成的. 所以需 ...

  8. Tkinter Cursors

      Tkinter Cursors:   Python的Tkinter的支持很多不同的鼠标光标的数字.确切的图形可能会有所不同,根据您的操作系统. 这里是大量有趣的的名单: "arrow&q ...

  9. 怎么分辨linux系统是虚拟机还是物理机

    用lspci -b|grep "VMware"抓取系列信息,即表明此系统的宿主机是基于VMware虚拟出来的,别的可以照葫芦画瓢来!

  10. 异步编程之Generator(2)——剖析特性

    异步编程系列教程: (翻译)异步编程之Promise(1)--初见魅力 异步编程之Promise(2):探究原理 异步编程之Promise(3):拓展进阶 异步编程之Generator(1)--领略魅 ...