Aracılığıyla paylaş


OpenMP İşlevleri

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 türünde 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

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 türünde 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

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 türünde 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_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.