#include #include #include int main (int argc, char *argv[]) { int i; int tid=-1; omp_set_num_threads(4); printf("before parfor tid: %d, tid address: %p\n",tid, (void*) &tid); printf("before parfor i: %i, i address: %p\n",i, (void*) &i); #pragma omp parallel private(tid) { /* Obtain thread number */ tid = omp_get_thread_num(); #pragma omp critical printf("tid: %d, tid address: %p\n",tid, (void*) &tid); } /* All threads join master thread and disband */ printf("after parfor tid: %d, tid address: %p\n",tid, (void*) &tid); } // // before parfor tid: -1, tid address: 0x7ffcab5486b8 // before parfor i: 0, i address: 0x7ffcab5486bc // tid: 0, tid address: 0x7ffcab54868c // tid: 3, tid address: 0x7ff1587c2e0c // tid: 2, tid address: 0x7ff1591c3e0c // tid: 1, tid address: 0x7ff159bc4e0c // after parfor tid: -1, tid address: 0x7ffcab5486b8