İngilizceFransızcaİspanyolca

OnWorks favicon'u

rrdthreads - Bulutta Çevrimiçi

Ubuntu Online, Fedora Online, Windows çevrimiçi emülatörü veya MAC OS çevrimiçi emülatörü üzerinden OnWorks ücretsiz barındırma sağlayıcısında rrdthreads çalıştırın

Bu, Ubuntu Online, Fedora Online, Windows çevrimiçi emülatörü veya MAC OS çevrimiçi emülatörü gibi birden fazla ücretsiz çevrimiçi iş istasyonumuzdan birini kullanarak OnWorks ücretsiz barındırma sağlayıcısında çalıştırılabilen rrdthreads komutudur.

Program:

ADI


rrdthreads - Çok iş parçacıklı programlarda kullanmak için RRD kitaplığını bağlamaya yönelik hükümler

SİNOPSİS


Çok iş parçacıklı programlarda librrd kullanmak, RRD gibi bazı ek önlemler gerektirir.
kütüphane orijinal biçiminde hiç iş parçacığı için güvenli değildi. Bu belge açıklar
librrd'nin çok iş parçacıklı sürümünü kullanma yolundaki gereksinimler ve tuzaklar
kendi programları. Ayrıca, kütüphane iş parçacığını korumak için gelecekteki RRD geliştirmesi için ipuçları verir.
kasa.

Şu anda yalnızca bazı RRD işlemleri iş parçacığı açısından güvenli bir şekilde uygulanmaktadır. hepsi bitiyor
olağan ""_r"" soneki.

TANIM


Librrd'yi çok iş parçacıklı programlarda kullanmak için yapmanız gerekenler:

· İle bağlantı kur librd_th yerine kitaplık (bağlanırken "-lrrd_th" kullanın)

· Normal API işlevleri yerine ""_r"" işlevlerini kullanın

· Herhangi bir at-style zaman belirtimi kullanmayın. Bu tür zaman özelliklerinin ayrıştırılması
korkunç derecede iş parçacığı için güvenli değil.

· İşlevin etkin olduğu açıkça belgelenmedikçe asla *"_r" dışı işlevleri kullanmayın.
güvenli.

· Her ileti dizisi, herhangi bir "librrd_th" öğesine ilk çağrısından önce "rrd_get_context()" çağrısı YAPMALIDIR.
iş parçacığına özgü verileri ayarlamak için işlev. Bu kesinlikle gerekli değildir, ancak
bu işlev tarafından bellek tahsisinin yapılıp yapılmadığını test etmenin tek yolu budur.
Aksi takdirde program, düşük bellek durumunda bir SIGSEGV ile ölebilir.

· Kütüphaneye yapılan herhangi bir çağrıdan önce daima "rrd_error_clear()" çağrısı yapın. Aksi takdirde arama
daha önceki bir hata nedeniyle başarısız olabilir.

NOTLAR İÇİN DRR KATKIDA
Bundan sonra RRD geliştirilirken bazı önlemlere uyulmalıdır:

· Kitaplık kodunda yalnızca iş parçacığı güvenli işlevleri kullanın. Sık kullanılan birçok libc işlevi,
iş parçacığı için güvenli. Aşağıdaki durumlarda veya aşağıdaki kitaplığı kullanırken dikkatli olun
fonksiyonlar:

· "strerror()"a doğrudan çağrılardan kaçınılmalıdır: bunun yerine "rrd_strerror()" kullanın.
iş parçacığı başına bir hata mesajı sağlar.

· "getpw*", "getgr*", "gethost*" işlev aileleri (ve biraz daha "get*"
işlevler) iş parçacığı için güvenli değildir: *"_r" değişkenlerini kullanın

· Zaman işlevleri: "asctime", "ctime", "gmtime", "localtime": *"_r" değişkenlerini kullanın

· "strtok": "strtok_r" kullanın

· "tmpnam": "tmpnam_r" kullanın

· Diğerleri (arama belgeleri)

· Adlı bir başlık dosyası rrd_is_thread_safe.h GNU ile çalışması sağlanır
kullanarak en yaygın iş parçacığı için güvenli olmayan işlevlerden bazılarını "zehirlemek" için C-önişlemci
"#pragma GCC zehiri" yönergesi. Sadece bu başlığı istediğiniz kaynak dosyalara ekleyin
iplik güvenli tutun.

· Global değişkenleri tanıtmayın!

Eğer gerçekten, gerçekten global bir değişken kullanmanız gerekiyorsa, buna yeni bir alan ekleyebilirsiniz.
"rrd_context" yapısı ve değiştirme rrd_hata.c, rrd_thread_safe.c ve
rrd_non_thread_safe.c

· *"_r" içinde "getopt" veya "getopt_long" kullanmayın (doğrudan veya dolaylı olarak).

"getopt" global değişkenleri kullanır ve çok iş parçacıklı bir uygulamada şu durumlarda kötü davranır:
aynı anda aradı. Bunun yerine, tüm seçenekleri işlev olarak alan bir *_r işlevi sağlayın
parametreler. Değişken uzunluklu argüman için argc ve **argv argümanları sağlayabilirsiniz.
listeler. Örnek olarak "rrd_update_r" konusuna bakın.

· "rrd_parsetime" işlevini kullanmayın!

Çok sayıda global değişken kullanır. olarak tasarlanmayan işlevlerde kullanabilirsiniz.
iş parçacığı güvenli, bazı işlemlerin "_r" sürümünü saran işlevlerde olduğu gibi (örn.
"rrd_create", ancak "rrd_create_r" içinde değil)

ŞU ANDA UYGULANDI İPLİK GÜVENLİ FONKSİYONLAR
Şu anda "rrd_update", "rrd_create", "rrd_dump", iş parçacığı için güvenli türevleri bulunmaktadır.
"rrd_info", "rrd_last" ve "rrd_fetch".

onworks.net hizmetlerini kullanarak rrdthreads çevrimiçi kullanın


Ücretsiz Sunucular ve İş İstasyonları

Windows ve Linux uygulamalarını indirin

Linux komutları

Ad