C ++ - std :: vector安全多线程
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C ++ - std :: vector安全多线程相关的知识,希望对你有一定的参考价值。
我正在开发一个程序来计算矩阵的行列式(可能很大,最多1000行)。因为它可能很大,所以当dim(M) > 250
(<250在100毫秒内计算)时我使用多线程。
我的想法是将矩阵分成4个部分,高斯同时消除每个部分,然后重新收集矩阵并计算行列式。
我想知道,如果在多个线程中访问一个向量是安全的,因为它保证我只能访问它的不同部分吗?
另外,哪些提示可以限制内存使用量?我使用vector<vector<double>>
,所以8 * 1000 * 1000 doubles
可能是一个非常大的麻烦。
答案
只要你不改变它的大小就是安全的。
除非您进行调整大小,否则不会移动矢量的内容。因此,只要您访问内存的不同部分,就是安全的。
以上是关于C ++ - std :: vector安全多线程的主要内容,如果未能解决你的问题,请参考以下文章
[C++11 多线程异步] --- std::promise/std::future
[C++11 多线程异步] --- std::promise/std::future