我有以下函数,我希望由多个线程运行:
float * readWrite(int & idx, const float * vector, const int & dimension){
float * subPart = new float[dimension];
for(int i=0; i < dimension; i++)
subPart[i] = *(v+idx*dimension+i);
idx++;
return subPart;
}
所以每个线程都会读取变量idx并将其递增。 我希望在任何时候都不应允许读者和作者进入。解决方案是所有线程都能够访问idx,并且只有在idx更改时才会创建临界区(boost :: mutex)。 我怎么能用boost或甚至C ++ 11 std :: mutex来避免死锁和减慢读取访问速度。
由于