Udostępnij za pośrednictwem


copyprivate

Określa, że jeden lub więcej zmiennych powinny być współużytkowane przez wszystkie wątki.

copyprivate(var)

Uwagi

w przypadku gdy

  • var
    Jeden lub więcej zmiennych do udostępniania.Jeżeli określono więcej niż jednej zmiennej, oddziel przecinkami nazw zmiennych.

Uwagi

copyprivatestosuje się do pojedynczy dyrektywy.

Aby uzyskać więcej informacji, zobacz 2.7.2.8 copyprivate.

Przykład

// omp_copyprivate.cpp
// compile with: /openmp 
#include <stdio.h>
#include <omp.h>

float x, y, fGlobal = 1.0;
#pragma omp threadprivate(x, y)

float get_float() {
   fGlobal += 0.001;
   return fGlobal;
}

void use_float(float f, int t) {
   printf_s("Value = %f, thread = %d\n", f, t);
}

void CopyPrivate(float a, float b) {
   #pragma omp single copyprivate(a, b, x, y) 
   {
      a = get_float();
      b = get_float();
      x = get_float();
      y = get_float();
    }

   use_float(a, omp_get_thread_num());   
   use_float(b, omp_get_thread_num());   
   use_float(x, omp_get_thread_num());
   use_float(y, omp_get_thread_num());
}

int main() {
   float a = 9.99, b = 123.456;

   printf_s("call CopyPrivate from a single thread\n");
   CopyPrivate(9.99, 123.456);

   printf_s("call CopyPrivate from a parallel region\n");
   #pragma omp parallel     
   {
      CopyPrivate(a, b);
   }
}
  

Zobacz też

Informacje

Klauzule OpenMP