Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gibt an, dass alle Threads die gleiche Ansicht des Arbeitsspeichers für alle freigegebenen Objekte haben.
#pragma omp flush [(var)]
Hinweise
Hierbei ist:
- var (optional)
Eine durch Trennzeichen getrennte Liste von Variablen, die Objekte darstellen möchten Sie synchronisieren.Wenn var nicht angegeben ist, wird der gesamte Speicherplatz geleert.
Hinweise
Die leer-Direktiven unterstützen keine OpenMP-Klauseln.
Weitere Informationen finden Sie unter 2.6.5 flush-Direktive.
Beispiel
// 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);
}
}
}