Heim > Backend-Entwicklung > C++ > Hauptteil

Verwenden eines C-Programms zur Thread-Synchronisierung, um Zahlen nacheinander zu drucken

王林
Freigeben: 2023-08-26 22:45:06
nach vorne
1378 Leute haben es durchsucht

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.

Was ist ein Thread?

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.

Wie funktioniert es in unserem Programm?

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
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:tutorialspoint.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage