用户登录
用户注册

分享至

golang中的并发和并行

  • 作者: 大驴的
  • 来源: 51数据库
  • 2021-06-28

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

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

补充:go多核并行化

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

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

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

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

软件
前端设计
程序设计
Java相关