Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
OpenMP API'sinde kullanılan işlevlerin bağlantılarını sağlar.
OpenMP standardının Visual C++ uygulaması aşağıdaki işlevleri ve veri türlerini içerir.
Ortamda yürütme için:
| İşlev | Açıklama |
|---|---|
| omp_set_num_threads | Bir num_threads yan tümcesi tarafından geçersiz kılınmadığı sürece, gelecekteki paralel bölgelerdeki iş parçacığı sayısını ayarlar. |
| omp_get_num_threads | Paralel bir bölgedeki iş parçacığı sayısını döndürür. |
| omp_get_max_threads | Kodda num_threads olmadan bir paralel bölge tanımlandığında kullanılabilir iş parçacığı sayısına eşit veya daha büyük bir tamsayı döndürür. |
| omp_get_thread_num | Kendi iş parçacığı ekibinde çalışan iş parçacığının numarasını döndürür. |
| omp_get_num_procs | İşlev çağrıldığında kullanılabilen işlemci sayısını döndürür. |
| omp_in_parallel | Paralel bir bölgeden çağrılırsa sıfırdan farklı bir değer döndürür. |
| omp_set_dynamic | Yaklaşan paralel bölgelerde kullanılabilen iş parçacığı sayısının çalışma zamanına göre ayarlanabileceğini gösterir. |
| omp_get_dynamic | Gelecek paralel bölgelerdeki iş parçacığı sayısının çalışma zamanında değiştirilebilir olup olmadığını belirten bir değer döndürür. |
| omp_set_nested | İç içe paralelliği etkinleştirir. |
| omp_get_nested | İç içe paralelliğin etkinleştirilip etkinleştirilmediğini gösteren bir değer döndürür. |
Kilit için:
| İşlev | Açıklama |
|---|---|
| omp_init_lock | Basit bir kilit başlatır. |
| omp_init_nest_lock | Bir kilidi başlatır. |
| omp_destroy_lock | Bir kilidi başlatılmamış hale getirir. |
| omp_destroy_nest_lock | Bir iç içe geçebilen kilidi başlatmayı geri alır. |
| omp_set_lock | Bir kilit kullanılabilir olana kadar iş parçacığı yürütmeyi durdurur. |
| omp_set_nest_lock | Bir kilit kullanılabilir olana kadar iş parçacığı yürütmeyi durdurur. |
| omp_unset_lock | Kilidi serbest bırakır. |
| omp_unset_nest_lock | İç içe bir kilidi çözer. |
| omp_test_lock | Bir kilidi ayarlamaya çalışır ancak iş parçacığının yürütülmesini engellemez. |
| omp_test_nest_lock | İç içe bir kilit ayarlamaya çalışır, ancak iş parçacığı yürütülmesini engellemez. |
| Veri türü | Açıklama |
|---|---|
omp_lock_t |
Bir kilidin durumunu belirten, kilidin kullanılabilir olup olmadığını veya bir iş parçacığının kilidi elinde tutup tutmadığını gösteren bir tür. |
omp_nest_lock_t |
Bir kilit hakkında aşağıdaki bilgi parçalarından birini tutan bir veri tipi: kilidin kullanılabilir olup olmadığı, kilidin sahibi olan iş parçacığının kimliği ve iç içe geçme sayısı. |
Zamanlama rutinleri için:
| İşlev | Açıklama |
|---|---|
| omp_get_wtime | Bir noktadan geçen sürenin saniye cinsinden değerini döndürür. |
| omp_get_wtick | İşlemci saat darbesi arasındaki saniye sayısını döndürür. |
omp_destroy_lock
Bir kilidi başlatılmamış hale getirir.
void omp_destroy_lock(
omp_lock_t *lock
);
Parametreler
lock
omp_lock_t türünde, omp_init_lock ile başlatılan bir değişken.
Açıklamalar
Daha fazla bilgi için bkz . 3.2.2 omp_destroy_lock ve omp_destroy_nest_lock işlevleri.
Örnek
Örneği için omp_init_lock bkz. omp_destroy_lock.
omp_destroy_nest_lock
Bir iç içe geçebilen kilidi başlatmayı geri alır.
void omp_destroy_nest_lock(
omp_nest_lock_t *lock
);
Parametreler
lock
omp_init_nest_lock ile başlatılan
Açıklamalar
Daha fazla bilgi için bkz . 3.2.2 omp_destroy_lock ve omp_destroy_nest_lock işlevleri.
Örnek
omp_init_nest_lock kullanımına örnek için omp_destroy_nest_lock bölümüne bakın.
omp_get_dynamic
Gelecek paralel bölgelerdeki iş parçacığı sayısının çalışma zamanında değiştirilebilir olup olmadığını belirten bir değer döndürür.
int omp_get_dynamic();
Dönüş değeri
Sıfır olmayan bir değer, iş parçacıklarının dinamik olarak ayarlanabilir olduğu anlamına gelir.
Açıklamalar
İş parçacıklarının dinamik ayarı omp_set_dynamic ve OMP_DYNAMIC ile belirtilir.
Daha fazla bilgi için bkz . 3.1.7 omp_set_dynamic işlevi.
Örnek
Örneğini görmek için omp_set_dynamic'e bakın.
omp_get_max_threads
Kodda num_threads olmadan bir paralel bölge tanımlandığında kullanılabilir iş parçacığı sayısına eşit veya daha büyük bir tamsayı döndürür.
int omp_get_max_threads( )
Açıklamalar
Daha fazla bilgi için bkz 3.1.3 omp_get_max_threads işlevi.
Örnek
// 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
İç içe paralelliğin etkinleştirilip etkinleştirilmediğini gösteren bir değer döndürür.
int omp_get_nested( );
Dönüş değeri
Sıfır olmayan bir değer, iç içe paralelliğin etkinleştirildiği anlamına gelir.
Açıklamalar
İç içe paralellik omp_set_nested ve OMP_NESTED ile belirtilir.
Daha fazla bilgi için 3.1.10 omp_get_nested işlevine bakın.
Örnek
Bir omp_get_nested kullanma örneği için omp_set_nested öğesine bakın.
omp_get_num_procs
İşlev çağrıldığında kullanılabilen işlemci sayısını döndürür.
int omp_get_num_procs();
Açıklamalar
Daha fazla bilgi için bkz . 3.1.5 omp_get_num_procs işlevi.
Örnek
// 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 - Bu komut OpenMP ile çalışan programlarda mevcut iş parçacığı sayısını elde etmek için kullanılır.
Paralel bir bölgedeki iş parçacığı sayısını döndürür.
int omp_get_num_threads( );
Açıklamalar
Daha fazla bilgi için bkz . 3.1.2 omp_get_num_threads işlevi.
Örnek
// 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
Kendi iş parçacığı ekibinde çalışan iş parçacığının numarasını döndürür.
int omp_get_thread_num( );
Açıklamalar
Daha fazla bilgi için bkz . 3.1.4 omp_get_thread_num işlevi.
Örnek
paralel kullanma örneği için omp_get_thread_num bölümüne bakın.
omp_get_wtick
İşlemci saat darbesi arasındaki saniye sayısını döndürür.
double omp_get_wtick( );
Açıklamalar
Daha fazla bilgi için bkz. 3.3.2 omp_get_wtick işlevi.
Örnek
Örnek için omp_get_wtime kullanma omp_get_wtickbakın.
omp_get_wtime
Bir noktadan geçen sürenin saniye cinsinden değerini döndürür.
double omp_get_wtime( );
Dönüş değeri
Rastgele ancak tutarlı bir noktadan geçen sürenin saniye cinsinden bir değer döndürür.
Açıklamalar
Bu nokta, program yürütme sırasında tutarlı olarak kalır ve yaklaşan karşılaştırmaları mümkün hale getirir.
Daha fazla bilgi için bkz . 3.3.1 omp_get_wtime işlevi.
Örnek
// 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
Paralel bir bölgeden çağrılırsa sıfırdan farklı bir değer döndürür.
int omp_in_parallel( );
Açıklamalar
Daha fazla bilgi için 3.1.6 omp_in_parallel işlevine bkz.
Örnek
// 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
Basit bir kilit başlatır.
void omp_init_lock(
omp_lock_t *lock
);
Parametreler
lock
türünde omp_lock_tbir değişken.
Açıklamalar
Daha fazla bilgi için bkz . 3.2.1 omp_init_lock ve omp_init_nest_lock işlevleri.
Örnek
// 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
Bir kilidi başlatır.
void omp_init_nest_lock(
omp_nest_lock_t *lock
);
Parametreler
lock
türünde omp_nest_lock_tbir değişken.
Açıklamalar
İlk iç içe yerleştirme sayısı sıfırdır.
Daha fazla bilgi için bkz . 3.2.1 omp_init_lock ve omp_init_nest_lock işlevleri.
Örnek
// 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
Yaklaşan paralel bölgelerde kullanılabilen iş parçacığı sayısının çalışma zamanına göre ayarlanabileceğini gösterir.
void omp_set_dynamic(
int val
);
Parametreler
Val
Gelecekteki paralel bölgelerde kullanılabilecek iş parçacığı sayısının, çalışma zamanı kütüphanesi tarafından ayarlanıp ayarlanamayacağını gösteren bir değer. Sıfır değilse, çalışma zamanı iş parçacığı sayısını ayarlayabilir, sıfırsa çalışma zamanı iş parçacığı sayısını dinamik olarak ayarlamaz.
Açıklamalar
İş parçacığı sayısı, omp_set_num_threads veya OMP_NUM_THREADS tarafından ayarlanan değeri hiçbir şekilde aşmaz.
omp_get_dynamic kullanarak omp_set_dynamic geçerli ayarını görüntüleyin.
omp_set_dynamic ayarı, OMP_DYNAMIC ortam değişkeninin ayarını geçersiz kılar.
Daha fazla bilgi için bkz . 3.1.7 omp_set_dynamic işlevi.
Örnek
// 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
Bir kilit kullanılabilir olana kadar iş parçacığı yürütmeyi engeller.
void omp_set_lock(
omp_lock_t *lock
);
Parametreler
lock
omp_lock_t türünde, omp_init_lock ile başlatılan bir değişken.
Açıklamalar
Daha fazla bilgi için bkz . 3.2.3 omp_set_lock ve omp_set_nest_lock işlevleri.
Örnekler
Örneği için omp_init_lock bkz. omp_set_lock.
omp_set_nest_lock
Bir kilit kullanılabilir olana kadar iş parçacığı yürütmeyi durdurur.
void omp_set_nest_lock(
omp_nest_lock_t *lock
);
Parametreler
lock
omp_init_nest_lock ile başlatılan
Açıklamalar
Daha fazla bilgi için bkz . 3.2.3 omp_set_lock ve omp_set_nest_lock işlevleri.
Örnekler
omp_init_nest_lock kullanımına örnek için omp_set_nest_lock bölümüne bakın.
omp_set_nested
İç içe paralelliği etkinleştirir.
void omp_set_nested(
int val
);
Parametreler
Val
Sıfır olmayan bir değer iç içe paralelliği etkinleştirirken sıfır iç içe paralelliği devre dışı bırakır.
Açıklamalar
OMP iç içe paralellik omp_set_nested etkinleştirilebilir veya OMP_NESTED ortam değişkeni ayarlanarak açılabilir.
ayarı omp_set_nested ortam değişkeninin OMP_NESTED ayarını geçersiz kılar.
Ortam değişkeninin etkinleştirilmesi, paralel bölgeleri iç içe geçirirken iş parçacıklarının sayısı katlanarak artacağından, başka bir işlem programını bozabilir. Örneğin, OMP iş parçacığı sayısının 4 olarak ayarlandığı altı kez yinelenen bir işlev için 4.096 (6'nın gücüne 4) iş parçacığı gerekir. G/Ç'ye bağlı uygulamalar dışında, işlemcilerden daha fazla iş parçacığı varsa uygulamanın performansı genellikle düşer.
omp_get_nested işlevini, omp_set_nested geçerli ayarını görüntülemek için kullanın.
Daha fazla bilgi için 3.1.9 omp_set_nested işlevi'ne bakın.
Örnek
// 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
Bir num_threads yan tümcesi tarafından geçersiz kılınmadığı sürece, gelecekteki paralel bölgelerdeki iş parçacığı sayısını ayarlar.
void omp_set_num_threads(
int num_threads
);
Parametreler
num_threads
Paralel bölgedeki iş parçacığı sayısı.
Açıklamalar
Daha fazla bilgi için bkz . 3.1.1 omp_set_num_threads işlevi.
Örnek
omp_get_num_threads kullanma örneği için bkz. omp_set_num_threads.
omp_test_lock
Bir kilidi ayarlamaya çalışır ancak iş parçacığının yürütülmesini engellemez.
int omp_test_lock(
omp_lock_t *lock
);
Parametreler
lock
omp_lock_t türünde, omp_init_lock ile başlatılan bir değişken.
Açıklamalar
Daha fazla bilgi için bkz . 3.2.5 omp_test_lock ve omp_test_nest_lock işlevleri.
Örnek
// 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
İç içe bir kilit ayarlamaya çalışır, ancak iş parçacığı yürütülmesini engellemez.
int omp_test_nest_lock(
omp_nest_lock_t *lock
);
Parametreler
lock
omp_init_nest_lock ile başlatılan
Açıklamalar
Daha fazla bilgi için bkz . 3.2.5 omp_test_lock ve omp_test_nest_lock işlevleri.
Örnek
// 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
Kilidi serbest bırakır.
void omp_unset_lock(
omp_lock_t *lock
);
Parametreler
lock
İş parçacığının sahip olduğu ve işlev içinde yürütülen, omp_lock_t türünde ve omp_init_lock ile başlatılan bir değişken.
Açıklamalar
Daha fazla bilgi için bkz . 3.2.4 omp_unset_lock ve omp_unset_nest_lock işlevleri.
Örnek
Örneği için omp_init_lock bkz. omp_unset_lock.
omp_unset_nest_lock
İç içe bir kilidi çözer.
void omp_unset_nest_lock(
omp_nest_lock_t *lock
);
Parametreler
lock
İşlevde yürütülen ve iş parçacığının sahip olduğu, türü omp_nest_lock_t olan ve omp_init_nest_lock ile başlatılan bir değişken.
Açıklamalar
Daha fazla bilgi için bkz . 3.2.4 omp_unset_lock ve omp_unset_nest_lock işlevleri.
Örnek
omp_init_nest_lock kullanımına örnek için omp_unset_nest_lock bölümüne bakın.