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的个数,判断协程运行是否全部完成,之后求和即可。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持。如有错误或未考虑完全的地方,望不吝赐教。
下一篇: php程序内存优化之数组操作优化
推荐阅读
-
Windows 64 位 mysql 5.7以上版本包解压中没有data目录和my-default.ini及服务无法启动的快速解决办法(问题小结)
-
Three.js中矩阵和向量的使用教程
-
大数据在托管和SEO中的作用有哪些?
-
在Python的Django框架中调用方法和处理无效变量
-
详解Django中的ifequal和ifnotequal标签使用
-
深入分析iOS应用中对于图片缓存的管理和使用
-
Objective-C编程中语句和变量的一些编写规范建议
-
Android中隐藏标题栏和状态栏的方法
-
iOS App中实现播放音效和音乐功能的简单示例
-
AE2018ae中文和英文怎么切换? ae2018中英文切换的方法