と について初心者に質問がBoost::Thread
ありMutex
ます。
次の多くの並列インスタンスを開始したいのですがWorker
、それらはすべて同じに書き込みますstd::vector
:
struct Worker {
std::vector<double>* vec;
Worker(std::vector<double>* v) : vec(v) {}
void operator() {
// do some long computation and then add results to *vec, e.g.
for(std::size_t i = 0; i < vec->size(); ++i) {
(*vec)[i] += some_value;
}
}
};
ワーカーは書き込む前にロックし、完了したらロックを解除する必要があることを理解していますvec
(すべてのワーカーが同じベクターに書き込むため)。でもそれをどう表現すればいいの?