Heim > Artikel > Backend-Entwicklung > Verwenden eines C-Programms zur Thread-Synchronisierung, um Zahlen nacheinander zu drucken
Bei einem Thread muss das Programm die Threads von 0 bis 10 entsprechend ihrer Priorität drucken.
Threads sind einfache Prozesse, die innerhalb eines Programms ausgeführt werden. Ein einfaches Programm kann n Threads enthalten.
Im Gegensatz zu Java unterstützt der C/C++-Sprachstandard kein Multithreading. POSIX-Threads (Pthreads) sind der Standard für Multithreading in C/C++. Die C-Sprache bietet keine integrierte Unterstützung für Multithread-Anwendungen, sondern verlässt sich bei der Bereitstellung dieser Funktionalität vollständig auf das Betriebssystem.
Um Thread-Funktionen nutzen zu können, verwenden wir die Header-Datei #include. Diese Header-Datei enthält alle Thread-bezogenen Funktionen in unserem Programm, wie z. B. pthread_create() usw.
Die aktuelle Aufgabe besteht darin, die vom gcc-Compiler bereitgestellte pthread-Standardbibliothek zum Synchronisieren von n Threads zu verwenden. Die Idee besteht darin, die Thread-Anzahl zu ermitteln und 1 im ersten Thread, 2 im zweiten Thread, 3 im dritten Thread und bis zum zehnten Thread zu drucken. Die Ausgabe enthält Zahlen von 1 bis 10, basierend auf der Priorität des Threads. Die chinesische Übersetzung von „Algorithmus“ lautet „
Start Step 1 -> Declare global variables as int MAX=10 and count=1 Step 2 -> declare variable thr of pthread_mutex_t and cond of pthread_cond_t Step 3 -> Declare Function void *even(void *arg) Loop While(count < MAX) Call pthread_mutex_lock(&thr) Loop While(count % 2 != 0) Call pthread_cond_wait(&cond, &thr) End Print count++ Call pthread_mutex_unlock(&thr) Call pthread_cond_signal(&cond) End Call pthread_exit(0) Step 4 -> Declare Function void *odd(void *arg) Loop While(count < MAX) Call pthread_mutex_lock(&thr) Loop While(count % 2 != 1) Call pthread_cond_wait(&cond, &thr) End Print count++ Call pthread_mutex_unlock(&thr) Call pthread_cond_signal(&cond) End Set pthread_exit(0) Step 5 -> In main() Create pthread_t thread1 and pthread_t thread2 Call pthread_mutex_init(&thr, 0) Call pthread_cond_init(&cond, 0) Call pthread_create(&thread1, 0, &even, NULL) Call pthread_create(&thread2, 0, &odd, NULL) Call pthread_join(thread1, 0) Call pthread_join(thread2, 0) Call pthread_mutex_destroy(&thr) Call pthread_cond_destroy(&cond) Stop“
Das obige ist der detaillierte Inhalt vonVerwenden eines C-Programms zur Thread-Synchronisierung, um Zahlen nacheinander zu drucken. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!