Compartir a través de


vacío (OpenMP)

especifica que todos los subprocesos tienen la misma vista de memoria para todos los objetos compartidos.

#pragma omp flush [(var)]

Comentarios

donde

  • var (opcional)
    Una lista separada por comas de variables que representan objetos desea sincronizar.Si var no se especifica, se vacía toda la memoria.

Comentarios

la directiva de vaciado no admite ninguna cláusula de OpenMP.

Para obtener más información, vea directiva alineado 2.6.5.

Ejemplo

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

void read(int *data) {
   printf_s("read data\n");
   *data = 1;
}

void process(int *data) {
   printf_s("process data\n");
   (*data)++;
}

int main() {
   int data;
   int flag;

   flag = 0;

   #pragma omp parallel sections num_threads(2)
   {
      #pragma omp section
      {
         printf_s("Thread %d: ", omp_get_thread_num( ));
         read(&data);
         #pragma omp flush(data)
         flag = 1;
         #pragma omp flush(flag)
         // Do more work.
      }

      #pragma omp section 
      {
         while (!flag) {
            #pragma omp flush(flag)
         }
         #pragma omp flush(data)
       
         printf_s("Thread %d: ", omp_get_thread_num( ));
         process(&data);
         printf_s("data = %d\n", data);
      }
   }
}
  

Vea también

Referencia

Directivas de OpenMP