安全

2012-03-19 55 views
2


衆所周知,運營商[]是不是寫同時安全: concurrent_vector::operator[] Operator 但是,如果我保證,不同的線程會寫入不同的向量位置是什麼。 這樣的(非常簡化的例子):安全

concurrent_vector<double> vec; 
vec.resize(100); 

parallel_for(0, 100, [&] (double ind) 
{ 
    vec[ind] = ind*ind; 
} 

它是同時安全與否?如果'不',那麼爲什麼?

謝謝

+5

_That_將是安全的,即使與普通的舊'的std ::向量<>'。你遇到什麼問題來提示這個問題? – ildjarn 2012-03-19 21:08:02

回答

2

是的,它是同時安全的,因爲它就像如果你正在訪問不同的變量。

由於ildjam的評論,這將是安全的,即使與普通std::vector或者,讓我補充,用簡單數組指出。

+0

謝謝你,夥計們。

我只是想檢查任我理解正確的方式。 – IgorStack 2012-03-19 21:34:51