GO协程需要像多进程那样循环开启几个协程执行任务吗

//求 1-200里面的素数
var primeSlice []int
//求素数, true是素数
func prime(num int){
    result:=0
    for i:=2;i<num;i++{
        if num%2 ==0{
            result++
        }
    }
    if result==0{
        primeSlice=append(primeSlice,num)
    }
}

func main() {
    for i:=0;i<200;i++{
        go prime(i)
    }
    fmt.Println(primeSlice)
}

目前我是直接在主线程里面调用协程,如果我想跑满全CPU,还需要像多进程那样 循环开启4个协程(+管道)来执行吗?还是说go会自动调度CPU执行。刚入门。

阅读 3.2k
1 个回答
跑满cpu
runtime.GOMAXPROCS(runtime.NumCPU())

在go1.5以后默认开启跑满cpu。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题