例如,使用一个小程序(就运行时间而言),即使我的计算机上有几个内核,c++程序也可以很容易。
#include <bits/stdc++.h>
using namespace std;
int main()
{
vector<int> g1;
for (int i = 1; i <= 10; i++)
g1.push_back(i * 10);
for (int i = 1; i <= 10; i++){
std::cout << g1[i] <<endl;
}
return 0;
}但是,我将使用一个非常大的向量大小大于一百万的程序。还有许多其他进程,这使得在我的计算机(MacBook)上以较小的运行时间完成程序变得更加困难。有没有办法让我可以并行(我的意思是多线程)?这意味着我运行相同的程序,但由于在多个线程中进行处理,所以时间减少了。我对并行计算非常陌生,所以如果问题不够清楚,请告诉我。
我电脑的内存(Macbook):8 8GB 1600 MHz DDR3
处理器: 1.6 GHz双核英特尔酷睿i5
发布于 2020-09-17 10:40:02
如果您使用相同的资源(矢量g1),那么不幸的是,不会节省大量的时间。
线程适合使用独立的资源以异步方式独立运行。
下面是另一个更深入了解如何通过线程访问STL向量的问题:C++ Access to vector from multiple threads
https://stackoverflow.com/questions/63930401
复制相似问题