Compartir a través de


copyprivate

especifica que una o más variables se deben compartir entre todos los subprocesos.

copyprivate(var)

Comentarios

donde

  • var
    una o más variables a compartir.Si se especifica más de una variable, los nombres de variable separados por una coma.

Comentarios

copyprivate se aplica a la directiva de solo .

Para obtener más información, vea Copyprivate de 2.7.2.8.

Ejemplo

// 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);
   }
}
  

Vea también

Referencia

Cláusulas de OpenMP