使用threadprivate指令的A.26

下面的示例演示如何使用 threadprivate 指令 (在第 23 页) 的第2.7.1部分 为每个线程提供单独的计数器。

示例 1:

int counter = 0;
#pragma omp threadprivate(counter)

int sub()
{
    counter++;
    return(counter);
}

示例 2:

int sub()
{
    static int counter = 0;
    #pragma omp threadprivate(counter)
    counter++;
    return(counter);
}