- static 变量默认是 shared
例子:
#include <stdio.h>
#include <omp.h>
static int arr[5]; // 静态数组
#pragma omp threadprivate(arr) // 每个线程有独立的 arr 副本
void func() {
#pragma omp parallel
{
int tid = omp_get_thread_num();
arr[tid] = tid + 1; // 每个线程修改自己的 arr 副本
printf("Thread %d: arr[%d] = %d\n", tid, tid, arr[tid]);
}
}
int main() {
func();
return 0;
}