Pthreads (POSIX Threads) ist eine standardisierte C-basierte API zum Erstellen und Bearbeiten von Threads. Es ist derzeit in POSIX.1-2008 (IEEE Std 1003.1, Ausgabe 2013 / Open Group Base Specifications, Ausgabe 7) definiert.
Ich habe die folgende Demo aus dem Internet unter https://computing.llnl.gov/tutorials/pthreads/ abgerufen. #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; …
Ich lese weiter pthread.h; Die auf Bedingungsvariablen bezogenen Funktionen (wie pthread_cond_wait(3)) erfordern einen Mutex als Argument. Warum? Soweit ich das beurteilen kann, werde ich einen Mutex zu erschaffen nur als dieses Argument zu benutzen? Was soll dieser Mutex tun?
Warum sollte ich in der Praxis den einen oder anderen bevorzugen? Was sind technische Unterschiede, außer dass std::threades sich um eine Klasse handelt?
Alle in diesem Block genannten Funktionen sind Bibliotheksfunktionen. Wie kann ich diesen Speicherverlust beheben? Es ist in der Kategorie " Noch erreichbar " aufgeführt. (Es gibt 4 weitere, die sehr ähnlich sind, aber unterschiedliche Größen haben) 630 bytes in 1 blocks are still reachable in loss record 5 of 5 …
Um die Manpage zu zitieren: Bei Verwendung von Bedingungsvariablen gibt es immer ein boolesches Prädikat mit gemeinsam genutzten Variablen, die jeder Bedingungswartezeit zugeordnet sind. Dies ist der Fall, wenn der Thread fortgesetzt werden soll. Es können falsche Aufweckvorgänge mit den Funktionen pthread_cond_timedwait () oder pthread_cond_wait () auftreten. Da die Rückgabe …
In verschiedenen Multithread-C- und C ++ - Projekten habe ich gesehen, dass das -pthreadFlag sowohl auf die Kompilierungs- als auch auf die Verknüpfungsphase angewendet wurde, während andere es überhaupt nicht verwenden und einfach -lpthreadauf die Verknüpfungsphase übergehen . Besteht die Gefahr, nicht mit der -pthreadFlagge zu kompilieren und zu verknüpfen …
Ich installiere mingw-w64 unter Windows und es gibt zwei Optionen: Win32-Threads und Posix-Threads. Ich weiß, was der Unterschied zwischen Win32-Threads und Pthreads ist, aber ich verstehe nicht, was der Unterschied zwischen diesen beiden Optionen ist. Ich bezweifle, dass ich bei der Auswahl von Posix-Threads keine WinAPI-Funktionen wie CreateThread aufrufen kann. …
Ich muss mehrere Argumente an eine Funktion übergeben, die ich in einem separaten Thread aufrufen möchte. Ich habe gelesen, dass der typische Weg, dies zu tun, darin besteht, eine Struktur zu definieren, der Funktion einen Zeiger darauf zu übergeben und sie für die Argumente zu dereferenzieren. Ich kann dies jedoch …
Ich bin immer verwirrt. Würde jemand erklären, was wieder eintritt in verschiedenen Kontexten bedeutet? Und warum sollten Sie wiedereintrittsfähig oder nicht wiedereintrittsfähig verwenden? Sagen wir pthread (posix) sperrende Grundelemente, sind sie wiedereinsteigend oder nicht? Welche Fallstricke sollten bei der Verwendung vermieden werden? Ist Mutex wieder am Start?
Gibt es einen Unterschied zwischen pthread_mutex_t lock = PTHREAD_MUTEX_INITIALIZER; Oder pthread_mutex_t lock; pthread_mutex_init ( &lock, NULL); Bin ich sicher genug, wenn ich nur die erste Methode verwende? HINWEIS: Meine Frage bezieht sich hauptsächlich auf sehr kleine Programme, bei denen ich höchstens mehrere Clients mit einem Server verbinden und ihre Anfragen …
Wie drucke ich im Linux C-Programm die Thread-ID eines von der pthread-Bibliothek erstellten Threads? Zum Beispiel: Wir können einen Prozess durch bekommengetpid()
Nehmen wir an, ich habe eine Klasse wie class c { // ... void *print(void *){ cout << "Hello"; } } Und dann habe ich einen Vektor von c vector<c> classes; pthread_t t1; classes.push_back(c()); classes.push_back(c()); Jetzt möchte ich einen Thread erstellen c.print(); Und das Folgende gibt mir das folgende Problem: …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.