//互斥锁同步 #pragma opm atomic x< + or * or - or * or / or & or | or << or >> >=expr
void test9()
{
int sum = 0;
std::cout << "Before: " << sum << std::endl;
omp_set_num_threads(3);
#pragma omp parallel for
for (int i = 0; i < 20000; ++i)
{
#pragma omp atomic
sum++;
//cout<
}
std::cout << "After: " << sum << std::endl;
}
//临界区声明方法,可以对某个并行程序块进行防护。
void test10()
{
int sum = 0;
std::cout << "Before: " << sum << std::endl;
#pragma omp parallel for
for (int i = 0; i < 100; ++i)
{
#pragma omp critical (a)
{
test9();
sum = sum + i