C ++ - std :: vector安全多线程

问题描述 投票:1回答:1

我正在开发一个程序来计算矩阵的行列式(可能很大,最多1000行)。因为它可能很大,所以当dim(M) > 250(<250在100毫秒内计算)时我使用多线程。

我的想法是将矩阵分成4个部分,高斯同时消除每个部分,然后重新收集矩阵并计算行列式。

我想知道,如果在多个线程中访问一个向量是安全的,因为它保证我只能访问它的不同部分吗?

另外,哪些提示可以限制内存使用量?我使用vector<vector<double>>,所以8 * 1000 * 1000 doubles可能是一个非常大的麻烦。

c++ multithreading memory-management shared-memory
1个回答
5
投票

只要你不改变它的大小就是安全的。

除非您进行调整大小,否则不会移动矢量的内容。因此,只要您访问内存的不同部分,就是安全的。

© www.soinside.com 2019 - 2024. All rights reserved.