int arr[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
int maxnum1 = -1;
#pragma omp parallel for
for(int i = 0; i < 10; i++)
#pragma omp critical(maxnum1)
if(arr[i] > maxnum1)
maxnum1 = arr[i];
cout << maxnum1 << endl;
// cirtical指导语句常与具有(指定共享变量)shared子句的OpenMP语句配套使用
// 用于保护盖共享变量(此时就不在需指明加锁变量的参数了)
int maxnum2 = -1;
#pragma omp parallel for shared(maxnum2)
for(int i = 0; i < 10; i++)
#pragma omp critical
if(arr[i] > maxnum2)
maxnum2 = arr[i];
cout << maxnum2 << endl;
OpenMP critical
最新推荐文章于 2024-05-10 20:03:50 发布