Golang 多核并行
并行和并发 并发:一个处理器依次处理多个任务。并发一般是被内核通过时间片或者中断来控制的,遇到io阻塞或者时间片用完的时会转移线程的使用权。 image.png 并行:多个处理器或者是多核的处理器同时处理多个不同的任务。一个核的情况下不可能有并行的情况,因为同一时间只有一个任务在调度。 image.png Golang的并行 Golang默认情况下都是使用一个cpu来执行goroutine的任务,所以在默认的情况下并不能执行并发任务。如果想使用多核并行的任务,可以通过runtime.GOMAXPROCS()来设置CPU的个数的个数,当然这个数不能超过计算机拥有的CPU 。 一个简单的多核处理多任务的案例 func DoTask(wg *sync.WaitGroup) int { n := 2...阅读全文