欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

golang中的并发和并行

程序员文章站 2022-06-24 08:32:12
golang中默认使用一个cpu,这时程序无法并发,只能是并发。因为始终只有一个cpu在运行。runtime.gomaxprocs(2) 设置使用2个cpu,这才真正是并行。补充:go多核并行化通过g...

golang中默认使用一个cpu,这时程序无法并发,只能是并发。因为始终只有一个cpu在运行。

runtime.gomaxprocs(2) 设置使用2个cpu,这才真正是并行。

补充:go多核并行化

通过goroutine创建相同逻辑cpu核心个数的协程,将求和列表分段,分别计算后汇总。

通过runtime.numcpu()获得逻辑cpu个数,并计算每个协程中计算列表的下标,计算完成后,向channel中写入1。

通过向channel中读取int的个数,判断协程运行是否全部完成,之后求和即可。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持。如有错误或未考虑完全的地方,望不吝赐教。