Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
The new home for Visual Studio documentation is Visual Studio 2017 Documentation on docs.microsoft.com.
The following example avoids race conditions (simultaneous updates of an element of x by multiple threads) by using the atomic
directive (Section 2.6.4 on page 19):
#pragma omp parallel for shared(x, y, index, n)
for (i=0; i<n; i++)
{
#pragma omp atomic
x[index[i]] += work1(i);
y[i] += work2(i);
}
The advantage of using the atomic
directive in this example is that it allows updates of two different elements of x to occur in parallel. If a critical
directive (Section 2.6.2 on page 18) were used instead, then all updates to elements of x would be executed serially (though not in any guaranteed order).
Note that the atomic
directive applies only to the C or C++ statement immediately following it. As a result, elements of y are not updated atomically in this example.