场景是一个大的集合分成了几百几千个小的集合,然后每个集合都调用func1进行运算,结果放到一个全局的vector,代码可以简要如下:
func1函数内还有一些独立的操作在这里省略了,只列出了可能线程冲突的部分
通过打印 for 循环里的局部变量 i,看到了是乱序的,说明应该是启用了多线程吧?但是和串行的执行时间基本一致,是为什么呢?
我试了开辟vector足够大,去掉了锁,但也是没有加速成功
场景是一个大的集合分成了几百几千个小的集合,然后每个集合都调用func1进行运算,结果放到一个全局的vector,代码可以简要如下:
func1函数内还有一些独立的操作在这里省略了,只列出了可能线程冲突的部分
通过打印 for 循环里的局部变量 i,看到了是乱序的,说明应该是启用了多线程吧?但是和串行的执行时间基本一致,是为什么呢?
我试了开辟vector足够大,去掉了锁,但也是没有加速成功