«pthreads» etiketlenmiş sorular

Pthreads (POSIX Threads), iş parçacığı oluşturmak ve işlemek için standartlaştırılmış C tabanlı bir API'dir. Şu anda POSIX.1-2008 (IEEE Std 1003.1, 2013 Edition / The Open Group Base Specification Issue 7) tarafından tanımlanmaktadır.

14
Linux'ta pthread_create'e tanımlanmamış referans
Aşağıdaki demoyu web'den https://computing.llnl.gov/tutorials/pthreads/ adresinden aldım. #include <pthread.h> #include <stdio.h> #define NUM_THREADS 5 void *PrintHello(void *threadid) { long tid; tid = (long)threadid; printf("Hello World! It's me, thread #%ld!\n", tid); pthread_exit(NULL); } int main (int argc, char *argv[]) { pthread_t threads[NUM_THREADS]; int rc; long t; for(t=0; t<NUM_THREADS; t++){ printf("In main: creating …


3
cmake ve libpthread
Koşuyorum RHEL 5.1ve kullanıyorum gcc. Derlemeye ve bağlantıya cmakeeklemeyi nasıl söyleyebilirim -pthread?
188 pthreads  cmake 



5
Valgrind tarafından hala ulaşılabilir sızıntı tespit edildi
Bu blokta belirtilen tüm fonksiyonlar kütüphane fonksiyonudur. Bu bellek sızıntısını nasıl düzeltebilirim? " Hala erişilebilir " kategorisi altında listelenir . (Çok benzer, ancak değişen boyutlarda 4 tane daha var) 630 bytes in 1 blocks are still reachable in loss record 5 of 5 at 0x4004F1B: calloc (vg_replace_malloc.c:418) by 0x931CD2: _dl_new_object …
155 c  pthreads  valgrind 

4
Neden pthread_cond_wait sahte uyandırma var?
Kılavuz sayfasını alıntılamak için: Koşul değişkenlerini kullanırken, her koşulla ilişkili paylaşılan değişkenleri içeren her zaman bir Boole yüklemi, iş parçacığının devam etmesi durumunda doğru olur. Pthread_cond_timedwait () veya pthread_cond_wait () işlevlerinden sahte uyanmalar oluşabilir. Pthread_cond_timedwait () veya pthread_cond_wait () 'den dönüş bu yüklemin değeri hakkında hiçbir şey ifade etmediğinden, yüklem …
145 c  pthreads 

2
Derlerken -pthread bayrağının önemi
Çeşitli çok iş parçacıklı C ve C ++ projelerinde -pthreadbayrağın hem derleme hem de bağlama aşamasına uygulandığını gördüm, diğerleri ise hiç kullanmıyor ve sadece -lpthreadbağlantı aşamasına geçiyor . -pthreadBayrağa derlenip bağlantı kurmama tehlikesi var mı -pthread? Yani aslında ne işe yarar? Öncelikle Linux platformlarıyla ilgileniyorum.
143 c++  c  linux  pthreads 

3
mingw-w64 konuları: posix vs win32
Windows'a mingw-w64 kuruyorum ve iki seçenek var: win32 thread ve posix thread. Win32 iş parçacıkları ve pthreads arasındaki farkın ne olduğunu biliyorum, ancak bu iki seçenek arasındaki farkın ne olduğunu anlamıyorum. Posix iş parçacığını seçersem, bunun CreateThread gibi WinAPI işlevlerini çağırmamı engelleyeceğinden şüpheliyim. Görünüşe göre bu seçenek, hangi iş parçacığı …
129 windows  gcc  pthreads  mingw 


9
Pthread_create () tarafından çağrılan işlev için birden çok argüman var mı?
Ayrı bir iş parçacığında çağırmak istediğim bir işleve birden çok argüman iletmem gerekiyor. Ya sahibim yapmanın tipik yolunun bir yapı tanımlamak, işleve buna bir işaretçi geçirmek ve argümanlar için ondan referans almak olduğunu okudum . Ancak, bunu çalıştıramıyorum: #include <stdio.h> #include <pthread.h> struct arg_struct { int arg1; int arg2; }; …
96 c  pthreads 

4
Genel olarak yeniden giriş kilidi ve kavramı nedir?
Kafam hep karışır. Birisi Reentrant'ın farklı bağlamlarda ne anlama geldiğini açıklayabilir mi ? Ve neden evresel ve evresel olmayan kullanmak isteyesiniz? Pthread (posix) kilitleme ilkelleri deyin, bunlar yeniden giren mi değil mi? Bunları kullanırken hangi tuzaklardan kaçınılmalıdır? Mutex yeniden mi giriyor?


4
PTHREAD_MUTEX_INITIALIZER - pthread_mutex_init (& mutex, param)
Arasında herhangi bir fark var mı pthread_mutex_t lock = PTHREAD_MUTEX_INITIALIZER; Veya pthread_mutex_t lock; pthread_mutex_init ( &lock, NULL); Yalnızca ilk yöntemi kullanırsam yeterince güvende miyim? NOT: Sorum çoğunlukla çok küçük programlarla ilgilidir, burada en çok yapacağım şey birkaç istemciyi bir sunucuya bağlamak ve sorgularını çalışan iş parçacıklarıyla çözmek.
91 c  ubuntu  pthreads  mutex 

9
bir sınıftan pthread işlevi
Diyelim ki gibi bir sınıfım var class c { // ... void *print(void *){ cout << "Hello"; } } Ve sonra bir c vektörüm var vector<c> classes; pthread_t t1; classes.push_back(c()); classes.push_back(c()); Şimdi, üzerinde bir konu oluşturmak istiyorum c.print(); Ve şu bana aşağıdaki sorunu veriyor: pthread_create(&t1, NULL, &c[0].print, NULL); Hata Çıkışı: …
86 c++  pthreads 

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.