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.
Stellt Links zu Funktionen bereit, die in der OpenMP-API verwendet werden.
Die Visual C++-Implementierung des OpenMP-Standards umfasst die folgenden Funktionen und Datentypen.
Zur Ausführung innerhalb der Umgebung:
| Funktion | Beschreibung |
|---|---|
| omp_set_num_threads | Legt die Anzahl der Threads in anstehenden parallelen Regionen fest, es sei denn, dies wird durch eine num_threads-Klausel außer Kraft gesetzt. |
| omp_get_num_threads | Gibt die Anzahl der Threads im parallelen Bereich zurück. |
| omp_get_max_threads | Gibt eine ganze Zahl zurück, die gleich oder größer als die Anzahl der Threads ist, die verfügbar wären, wenn an diesem Punkt im Code ein paralleler Bereich ohne num_threads definiert wurde. |
| omp_get_thread_num | Gibt die Threadnummer des Threads zurück, der innerhalb des Threadteams ausgeführt wird. |
| omp_get_num_procs | Gibt die Anzahl der Prozessoren zurück, die verfügbar sind, wenn die Funktion aufgerufen wird. |
| omp_in_parallel | Gibt einen Wert ungleich Null zurück, wenn er aus einem parallelen Bereich aufgerufen wird. |
| omp_set_dynamic | Gibt an, dass die Anzahl der in anstehenden parallelen Regionen verfügbaren Threads durch die Laufzeit angepasst werden kann. |
| omp_get_dynamic | Gibt einen Wert zurück, der angibt, ob die Anzahl der in anstehenden parallelen Regionen verfügbaren Threads um die Laufzeit angepasst werden kann. |
| omp_set_nested | Aktiviert geschachtelte Parallelität. |
| omp_get_nested | Gibt einen Wert zurück, der angibt, ob geschachtelte Parallelität aktiviert ist. |
Für Schloss:
| Funktion | Beschreibung |
|---|---|
| omp_init_lock | Initialisiert eine einfache Sperre. |
| omp_init_nest_lock | Initialisiert eine Sperre. |
| omp_destroy_lock | Deinitialisiert eine Sperre. |
| omp_destroy_nest_lock | Deinitialisiert eine verschachtelbare Sperre. |
| omp_set_lock | Blockiert die Threadausführung, bis eine Sperre verfügbar ist. |
| omp_set_nest_lock | Blockiert die Threadausführung, bis eine Sperre verfügbar ist. |
| omp_unset_lock | Gibt eine Sperre frei. |
| omp_unset_nest_lock | Gibt eine verschachtelte Sperre frei. |
| omp_test_lock | Versucht, eine Sperre festzulegen, die Threadausführung jedoch nicht zu blockieren. |
| omp_test_nest_lock | Versucht, eine verschachtelbare Sperre zu setzen, blockiert jedoch die Threadausführung nicht. |
| Datentyp | Beschreibung |
|---|---|
omp_lock_t |
Ein Typ, der den Status einer Sperre enthält, unabhängig davon, ob die Sperre verfügbar ist oder ob ein Thread eine Sperre besitzt. |
omp_nest_lock_t |
Ein Typ, der eine der folgenden Informationen zu einer Sperre enthält: ob die Sperre verfügbar ist, die Identität des Threads, der die Sperre besitzt, und eine Schachtelungsanzahl. |
Für Zeitsteuerungsroutinen:
| Funktion | Beschreibung |
|---|---|
| omp_get_wtime | Gibt einen Wert in Sekunden des Zeitraums zurück, der von einem bestimmten Punkt aus verstrichen ist. |
| omp_get_wtick | Gibt die Anzahl der Sekunden zwischen Prozessoruhrstrichen zurück. |
omp_destroy_lock
Deinitialisiert eine Sperre.
void omp_destroy_lock(
omp_lock_t *lock
);
Parameter
Sperre
Eine Variable vom Typ omp_lock_t , die mit omp_init_lock initialisiert wurde.
Hinweise
Weitere Informationen finden Sie unter 3.2.2 die Funktionen omp_destroy_lock und omp_destroy_nest_lock.
Beispiel
Ein Beispiel für die Verwendung finden Sie unter omp_init_lock .omp_destroy_lock
omp_destroy_nest_lock
Deinitialisiert eine verschachtelbare Sperre.
void omp_destroy_nest_lock(
omp_nest_lock_t *lock
);
Parameter
Sperre
Eine Variable vom Typ omp_nest_lock_t , die mit omp_init_nest_lock initialisiert wurde.
Hinweise
Weitere Informationen finden Sie unter 3.2.2 omp_destroy_lock und omp_destroy_nest_lock Funktionen.
Beispiel
Ein Beispiel für die Verwendung finden Sie unter omp_init_nest_lock.omp_destroy_nest_lock
omp_get_dynamic
Gibt einen Wert zurück, der angibt, ob die Anzahl der in anstehenden parallelen Regionen verfügbaren Threads um die Laufzeit angepasst werden kann.
int omp_get_dynamic();
Rückgabewert
Ein Wert ungleich Null bedeutet, dass Threads dynamisch angepasst werden.
Hinweise
Die dynamische Anpassung von Threads wird mit omp_set_dynamic und OMP_DYNAMIC angegeben.
Weitere Informationen finden Sie unter 3.1.7 OMP_SET_DYNAMIC-Funktion.
Beispiel
Ein Beispiel für die Verwendung finden Sie unter omp_set_dynamic.omp_get_dynamic
omp_get_max_threads
Gibt eine ganze Zahl zurück, die gleich oder größer als die Anzahl der Threads ist, die verfügbar wären, wenn an diesem Punkt im Code ein paralleler Bereich ohne num_threads definiert wurde.
int omp_get_max_threads( )
Hinweise
Weitere Informationen finden Sie unter Funktion 3.1.3 omp_get_max_threads.
Beispiel
// omp_get_max_threads.cpp
// compile with: /openmp
#include <stdio.h>
#include <omp.h>
int main( )
{
omp_set_num_threads(8);
printf_s("%d\n", omp_get_max_threads( ));
#pragma omp parallel
#pragma omp master
{
printf_s("%d\n", omp_get_max_threads( ));
}
printf_s("%d\n", omp_get_max_threads( ));
#pragma omp parallel num_threads(3)
#pragma omp master
{
printf_s("%d\n", omp_get_max_threads( ));
}
printf_s("%d\n", omp_get_max_threads( ));
}
8
8
8
8
8
omp_get_nested
Gibt einen Wert zurück, der angibt, ob geschachtelte Parallelität aktiviert ist.
int omp_get_nested( );
Rückgabewert
Ein Wert ungleich Null bedeutet, dass geschachtelte Parallelität aktiviert ist.
Hinweise
Geschachtelte Parallelität wird mit omp_set_nested und OMP_NESTED angegeben.
Weitere Informationen finden Sie unter 3.1.10 Funktion omp_get_nested.
Beispiel
Sehen Sie omp_set_nested für ein Beispiel der Verwendung von omp_get_nested.
omp_get_num_procs
Gibt die Anzahl der Prozessoren zurück, die verfügbar sind, wenn die Funktion aufgerufen wird.
int omp_get_num_procs();
Hinweise
Weitere Informationen finden Sie unter 3.1.5 omp_get_num_procs Funktion.
Beispiel
// omp_get_num_procs.cpp
// compile with: /openmp
#include <stdio.h>
#include <omp.h>
int main( )
{
printf_s("%d\n", omp_get_num_procs( ));
#pragma omp parallel
#pragma omp master
{
printf_s("%d\n", omp_get_num_procs( ));
}
}
// Expect the following output when the example is run on a two-processor machine:
2
2
omp_get_num_threads
Gibt die Anzahl der Threads im parallelen Bereich zurück.
int omp_get_num_threads( );
Hinweise
Weitere Informationen finden Sie unter 3.1.2 Funktion omp_get_num_threads.
Beispiel
// omp_get_num_threads.cpp
// compile with: /openmp
#include <stdio.h>
#include <omp.h>
int main()
{
omp_set_num_threads(4);
printf_s("%d\n", omp_get_num_threads( ));
#pragma omp parallel
#pragma omp master
{
printf_s("%d\n", omp_get_num_threads( ));
}
printf_s("%d\n", omp_get_num_threads( ));
#pragma omp parallel num_threads(3)
#pragma omp master
{
printf_s("%d\n", omp_get_num_threads( ));
}
printf_s("%d\n", omp_get_num_threads( ));
}
1
4
1
3
1
omp_get_thread_num
Gibt die Threadnummer des Threads zurück, der innerhalb des Threadteams ausgeführt wird.
int omp_get_thread_num( );
Hinweise
Weitere Informationen finden Sie unter 3.1.4 omp_get_thread_num Funktion.
Beispiel
Siehe parallel für ein Beispiel zur Verwendung von omp_get_thread_num.
omp_get_wtick
Gibt die Anzahl der Sekunden zwischen Prozessoruhrstrichen zurück.
double omp_get_wtick( );
Hinweise
Weitere Informationen finden Sie unter 3.3.2 omp_get_wtick Funktion.
Beispiel
Sehen Sie omp_get_wtime für ein Beispiel zur Verwendung von omp_get_wtick.
omp_get_wtime
Gibt einen Wert in Sekunden des Zeitraums zurück, der von einem bestimmten Punkt aus verstrichen ist.
double omp_get_wtime( );
Rückgabewert
Gibt einen Wert in Sekunden zurück, der die Zeitspanne seit einem beliebigen, aber konsistenten Ausgangspunkt misst.
Hinweise
Dieser Punkt wird während der Programmausführung konsistent bleiben und bevorstehende Vergleiche möglich machen.
Weitere Informationen finden Sie unter 3.3.1 omp_get_wtime Funktion.
Beispiel
// omp_get_wtime.cpp
// compile with: /openmp
#include "omp.h"
#include <stdio.h>
#include <windows.h>
int main() {
double start = omp_get_wtime( );
Sleep(1000);
double end = omp_get_wtime( );
double wtick = omp_get_wtick( );
printf_s("start = %.16g\nend = %.16g\ndiff = %.16g\n",
start, end, end - start);
printf_s("wtick = %.16g\n1/wtick = %.16g\n",
wtick, 1.0 / wtick);
}
start = 594255.3671159324
end = 594256.3664474116
diff = 0.9993314791936427
wtick = 2.793651148400146e-007
1/wtick = 3579545
omp_in_parallel
Gibt einen Wert ungleich Null zurück, wenn er aus einem parallelen Bereich aufgerufen wird.
int omp_in_parallel( );
Hinweise
Weitere Informationen finden Sie unter 3.1.6 Funktion omp_in_parallel.
Beispiel
// omp_in_parallel.cpp
// compile with: /openmp
#include <stdio.h>
#include <omp.h>
int main( )
{
omp_set_num_threads(4);
printf_s("%d\n", omp_in_parallel( ));
#pragma omp parallel
#pragma omp master
{
printf_s("%d\n", omp_in_parallel( ));
}
}
0
1
omp_init_lock
Initialisiert eine einfache Sperre.
void omp_init_lock(
omp_lock_t *lock
);
Parameter
Sperre
Eine Variable des Typs omp_lock_t.
Hinweise
Weitere Informationen finden Sie unter 3.2.1 Funktionen omp_init_lock und omp_init_nest_lock.
Beispiel
// omp_init_lock.cpp
// compile with: /openmp
#include <stdio.h>
#include <omp.h>
omp_lock_t my_lock;
int main() {
omp_init_lock(&my_lock);
#pragma omp parallel num_threads(4)
{
int tid = omp_get_thread_num( );
int i, j;
for (i = 0; i < 5; ++i) {
omp_set_lock(&my_lock);
printf_s("Thread %d - starting locked region\n", tid);
printf_s("Thread %d - ending locked region\n", tid);
omp_unset_lock(&my_lock);
}
}
omp_destroy_lock(&my_lock);
}
Thread 0 - starting locked region
Thread 0 - ending locked region
Thread 0 - starting locked region
Thread 0 - ending locked region
Thread 0 - starting locked region
Thread 0 - ending locked region
Thread 0 - starting locked region
Thread 0 - ending locked region
Thread 0 - starting locked region
Thread 0 - ending locked region
Thread 1 - starting locked region
Thread 1 - ending locked region
Thread 1 - starting locked region
Thread 1 - ending locked region
Thread 1 - starting locked region
Thread 1 - ending locked region
Thread 1 - starting locked region
Thread 1 - ending locked region
Thread 1 - starting locked region
Thread 1 - ending locked region
Thread 2 - starting locked region
Thread 2 - ending locked region
Thread 2 - starting locked region
Thread 2 - ending locked region
Thread 2 - starting locked region
Thread 2 - ending locked region
Thread 2 - starting locked region
Thread 2 - ending locked region
Thread 2 - starting locked region
Thread 2 - ending locked region
Thread 3 - starting locked region
Thread 3 - ending locked region
Thread 3 - starting locked region
Thread 3 - ending locked region
Thread 3 - starting locked region
Thread 3 - ending locked region
Thread 3 - starting locked region
Thread 3 - ending locked region
Thread 3 - starting locked region
Thread 3 - ending locked region
omp_init_nest_lock
Initialisiert eine Sperre.
void omp_init_nest_lock(
omp_nest_lock_t *lock
);
Parameter
Sperre
Eine Variable des Typs omp_nest_lock_t.
Hinweise
Die anfängliche Schachtelungsanzahl ist Null.
Weitere Informationen finden Sie unter 3.2.1 Funktionen omp_init_lock und omp_init_nest_lock.
Beispiel
// omp_init_nest_lock.cpp
// compile with: /openmp
#include <stdio.h>
#include <omp.h>
omp_nest_lock_t my_lock;
void Test() {
int tid = omp_get_thread_num( );
omp_set_nest_lock(&my_lock);
printf_s("Thread %d - starting nested locked region\n", tid);
printf_s("Thread %d - ending nested locked region\n", tid);
omp_unset_nest_lock(&my_lock);
}
int main() {
omp_init_nest_lock(&my_lock);
#pragma omp parallel num_threads(4)
{
int i, j;
for (i = 0; i < 5; ++i) {
omp_set_nest_lock(&my_lock);
if (i % 3)
Test();
omp_unset_nest_lock(&my_lock);
}
}
omp_destroy_nest_lock(&my_lock);
}
Thread 0 - starting nested locked region
Thread 0 - ending nested locked region
Thread 0 - starting nested locked region
Thread 0 - ending nested locked region
Thread 3 - starting nested locked region
Thread 3 - ending nested locked region
Thread 3 - starting nested locked region
Thread 3 - ending nested locked region
Thread 3 - starting nested locked region
Thread 3 - ending nested locked region
Thread 2 - starting nested locked region
Thread 2 - ending nested locked region
Thread 2 - starting nested locked region
Thread 2 - ending nested locked region
Thread 2 - starting nested locked region
Thread 2 - ending nested locked region
Thread 1 - starting nested locked region
Thread 1 - ending nested locked region
Thread 1 - starting nested locked region
Thread 1 - ending nested locked region
Thread 1 - starting nested locked region
Thread 1 - ending nested locked region
Thread 0 - starting nested locked region
Thread 0 - ending nested locked region
omp_set_dynamic
Gibt an, dass die Anzahl der in anstehenden parallelen Regionen verfügbaren Threads durch die Laufzeit angepasst werden kann.
void omp_set_dynamic(
int val
);
Parameter
val
Ein Wert, der angibt, ob die Anzahl der in anstehenden parallelen Regionen verfügbaren Threads während der Laufzeit angepasst werden kann. Wenn nonzero, kann die Laufzeit die Anzahl der Threads anpassen, wenn Null, die Laufzeit nicht dynamisch die Anzahl der Threads anpasst.
Hinweise
Die Anzahl der Threads überschreitet niemals den von omp_set_num_threads oder von OMP_NUM_THREADS festgelegten Wert.
Verwenden Sie omp_get_dynamic, um die aktuelle Einstellung von omp_set_dynamic anzuzeigen.
Die Einstellung von omp_set_dynamic überschreibt die der Umgebungsvariable OMP_DYNAMIC.
Weitere Informationen finden Sie unter 3.1.7 OMP_SET_DYNAMIC-Funktion.
Beispiel
// omp_set_dynamic.cpp
// compile with: /openmp
#include <stdio.h>
#include <omp.h>
int main()
{
omp_set_dynamic(9);
omp_set_num_threads(4);
printf_s("%d\n", omp_get_dynamic( ));
#pragma omp parallel
#pragma omp master
{
printf_s("%d\n", omp_get_dynamic( ));
}
}
1
1
omp_set_lock
Blockiert die Threadausführung, bis eine Sperre verfügbar ist.
void omp_set_lock(
omp_lock_t *lock
);
Parameter
Sperre
Eine Variable vom Typ omp_lock_t , die mit omp_init_lock initialisiert wurde.
Hinweise
Weitere Informationen finden Sie unter 3.2.3 Funktionen omp_set_lock und omp_set_nest_lock.
Beispiele
Ein Beispiel für die Verwendung finden Sie unter omp_init_lock .omp_set_lock
omp_set_nest_lock
Blockiert die Threadausführung, bis eine Sperre verfügbar ist.
void omp_set_nest_lock(
omp_nest_lock_t *lock
);
Parameter
Sperre
Eine Variable vom Typ omp_nest_lock_t , die mit omp_init_nest_lock initialisiert wurde.
Hinweise
Weitere Informationen finden Sie unter 3.2.3 Funktionen omp_set_lock und omp_set_nest_lock.
Beispiele
Ein Beispiel für die Verwendung finden Sie unter omp_init_nest_lock.omp_set_nest_lock
omp_set_nested
Aktiviert geschachtelte Parallelität.
void omp_set_nested(
int val
);
Parameter
val
Ein Nonzero-Wert ermöglicht geschachtelte Parallelität, während null geschachtelte Parallelität deaktiviert.
Hinweise
Die geschachtelte OMP-Parallelität kann mit omp_set_nestedoder durch Festlegen der OMP_NESTED Umgebungsvariable aktiviert werden.
Die Einstellung für omp_set_nested überschreibt die der OMP_NESTED Umgebungsvariable.
Durch aktivieren der Umgebungsvariable kann ein andernfalls funktionsfähiges Programm abgebrochen werden, da die Anzahl der Threads beim Schachteln paralleler Bereiche exponentiell zunimmt. Eine Funktion, die sechsmal mit der Anzahl der auf 4 festgelegten OMP-Threads rekursiert, erfordert beispielsweise 4.096 (4 bis 6)-Threads. Mit Ausnahme von I/O-gebundenen Anwendungen verschlechtert sich im Allgemeinen die Leistung einer Anwendung, wenn mehr Threads als Prozessoren vorhanden sind.
Verwenden Sie omp_get_nested, um die aktuelle Einstellung von omp_set_nested.
Weitere Informationen finden Sie unter 3.1.9 omp_set_nested-Funktion.
Beispiel
// omp_set_nested.cpp
// compile with: /openmp
#include <stdio.h>
#include <omp.h>
int main( )
{
omp_set_nested(1);
omp_set_num_threads(4);
printf_s("%d\n", omp_get_nested( ));
#pragma omp parallel
#pragma omp master
{
printf_s("%d\n", omp_get_nested( ));
}
}
1
1
omp_set_num_threads
Legt die Anzahl der Threads in anstehenden parallelen Regionen fest, es sei denn, dies wird durch eine num_threads-Klausel außer Kraft gesetzt.
void omp_set_num_threads(
int num_threads
);
Parameter
num_threads
Die Anzahl der Threads im parallelen Bereich.
Hinweise
Weitere Informationen finden Sie unter 3.1.1 "omp_set_num_threads"-Funktion.
Beispiel
Sehen Sie sich omp_get_num_threads als Beispiel für die Verwendung von omp_set_num_threads an.
omp_test_lock
Versucht, eine Sperre festzulegen, die Threadausführung jedoch nicht zu blockieren.
int omp_test_lock(
omp_lock_t *lock
);
Parameter
Sperre
Eine Variable vom Typ omp_lock_t , die mit omp_init_lock initialisiert wurde.
Hinweise
Weitere Informationen finden Sie in 3.2.5 den Funktionen omp_test_lock und omp_test_nest_lock.
Beispiel
// omp_test_lock.cpp
// compile with: /openmp
#include <stdio.h>
#include <omp.h>
omp_lock_t simple_lock;
int main() {
omp_init_lock(&simple_lock);
#pragma omp parallel num_threads(4)
{
int tid = omp_get_thread_num();
while (!omp_test_lock(&simple_lock))
printf_s("Thread %d - failed to acquire simple_lock\n",
tid);
printf_s("Thread %d - acquired simple_lock\n", tid);
printf_s("Thread %d - released simple_lock\n", tid);
omp_unset_lock(&simple_lock);
}
omp_destroy_lock(&simple_lock);
}
Thread 1 - acquired simple_lock
Thread 1 - released simple_lock
Thread 0 - failed to acquire simple_lock
Thread 3 - failed to acquire simple_lock
Thread 0 - failed to acquire simple_lock
Thread 3 - failed to acquire simple_lock
Thread 2 - acquired simple_lock
Thread 0 - failed to acquire simple_lock
Thread 3 - failed to acquire simple_lock
Thread 0 - failed to acquire simple_lock
Thread 3 - failed to acquire simple_lock
Thread 2 - released simple_lock
Thread 0 - failed to acquire simple_lock
Thread 3 - failed to acquire simple_lock
Thread 0 - acquired simple_lock
Thread 3 - failed to acquire simple_lock
Thread 0 - released simple_lock
Thread 3 - failed to acquire simple_lock
Thread 3 - acquired simple_lock
Thread 3 - released simple_lock
omp_test_nest_lock
Versucht, eine verschachtelbare Sperre zu setzen, blockiert jedoch die Threadausführung nicht.
int omp_test_nest_lock(
omp_nest_lock_t *lock
);
Parameter
Sperre
Eine Variable vom Typ omp_nest_lock_t , die mit omp_init_nest_lock initialisiert wurde.
Hinweise
Weitere Informationen finden Sie unter 3.2.5 omp_test_lock und omp_test_nest_lock Funktionen.
Beispiel
// omp_test_nest_lock.cpp
// compile with: /openmp
#include <stdio.h>
#include <omp.h>
omp_nest_lock_t nestable_lock;
int main() {
omp_init_nest_lock(&nestable_lock);
#pragma omp parallel num_threads(4)
{
int tid = omp_get_thread_num();
while (!omp_test_nest_lock(&nestable_lock))
printf_s("Thread %d - failed to acquire nestable_lock\n",
tid);
printf_s("Thread %d - acquired nestable_lock\n", tid);
if (omp_test_nest_lock(&nestable_lock)) {
printf_s("Thread %d - acquired nestable_lock again\n",
tid);
printf_s("Thread %d - released nestable_lock\n",
tid);
omp_unset_nest_lock(&nestable_lock);
}
printf_s("Thread %d - released nestable_lock\n", tid);
omp_unset_nest_lock(&nestable_lock);
}
omp_destroy_nest_lock(&nestable_lock);
}
Thread 1 - acquired nestable_lock
Thread 0 - failed to acquire nestable_lock
Thread 1 - acquired nestable_lock again
Thread 0 - failed to acquire nestable_lock
Thread 1 - released nestable_lock
Thread 0 - failed to acquire nestable_lock
Thread 1 - released nestable_lock
Thread 0 - failed to acquire nestable_lock
Thread 3 - acquired nestable_lock
Thread 0 - failed to acquire nestable_lock
Thread 3 - acquired nestable_lock again
Thread 0 - failed to acquire nestable_lock
Thread 2 - failed to acquire nestable_lock
Thread 3 - released nestable_lock
Thread 2 - failed to acquire nestable_lock
Thread 3 - released nestable_lock
Thread 2 - failed to acquire nestable_lock
Thread 0 - acquired nestable_lock
Thread 2 - failed to acquire nestable_lock
Thread 2 - failed to acquire nestable_lock
Thread 2 - failed to acquire nestable_lock
Thread 0 - acquired nestable_lock again
Thread 2 - failed to acquire nestable_lock
Thread 0 - released nestable_lock
Thread 2 - failed to acquire nestable_lock
Thread 0 - released nestable_lock
Thread 2 - failed to acquire nestable_lock
Thread 2 - acquired nestable_lock
Thread 2 - acquired nestable_lock again
Thread 2 - released nestable_lock
Thread 2 - released nestable_lock
omp_unset_lock
Gibt eine Sperre frei.
void omp_unset_lock(
omp_lock_t *lock
);
Parameter
Sperre
Eine Variable vom Typ omp_lock_t , die mit omp_init_lock initialisiert wurde, die dem Thread gehört und in der Funktion ausgeführt wird.
Hinweise
Weitere Informationen finden Sie unter 3.2.4 die Funktionen omp_unset_lock und omp_unset_nest_lock.
Beispiel
Ein Beispiel für die Verwendung finden Sie unter omp_init_lock .omp_unset_lock
omp_unset_nest_lock
Gibt eine verschachtelte Sperre frei.
void omp_unset_nest_lock(
omp_nest_lock_t *lock
);
Parameter
Sperre
Eine Variable vom Typ omp_nest_lock_t , die mit omp_init_nest_lock initialisiert wurde, die dem Thread gehört und in der Funktion ausgeführt wird.
Hinweise
Weitere Informationen finden Sie in 3.2.4 Funktionen omp_unset_lock und omp_unset_nest_lock.
Beispiel
Ein Beispiel für die Verwendung finden Sie unter omp_init_nest_lock.omp_unset_nest_lock