zoukankan      html  css  js  c++  java
  • [GO]gomaxprocs的使用

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

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

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

    00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111

    那如果指定两个核呢

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

    那么结果会很不一样

    1100011110010111001100101100010000001001111111000000011111110000011111100100001111100100000111111001011000000000000000000000000000000000000000000

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

    那么4核

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

    虽然看不出来啥,

    233123230003212132200000311131231231200023312231310002011331313330002222212132000003123131231231200123112323001131230002
  • 相关阅读:
    Go语言string,int,int64 ,float转换
    Go 时间相关
    静态顺序表操作
    汇编基础
    C语言字节对齐
    BugkuCTF-游戏过关
    数组越界问题分析
    选择排序(Java)
    杨辉三角(C语言)
    二分查找(Java)
  • 原文地址:https://www.cnblogs.com/baylorqu/p/9672432.html
Copyright © 2011-2022 走看看