多个读者/多个作家解决方案

时间:2013-03-27 10:19:04

标签: c++ multithreading boost

我有以下函数,我希望由多个线程运行:

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来避免死锁和减慢读取访问速度。

由于

0 个答案:

没有答案