Hallo C Freunde !
Ich schreibe gerade an einem Programm welches 2 Threads erzeugt ein Thread erzeugt beliebige Zahlen der zweit Thread gibt das ganze auf der Konsole aus...
Nun das ganz funktioniert auch wunderbar jetzt möchte ich allerdings das sich der Thread zur ausgabe der Zahlen selbst beendet wenn er eine 0 übergeben bekommt
dies soll er dem Thread der die Zahlen erstellt mitteilen worauf sich dieser Thread auch beendet.
So nun die Frage wie kann ich das am besten implementieren ? brauch ich da wieder so etwas wie eine buffer in den Thread 2 reinschreibt.
ungefähr so :
Alles anzeigen
oder gibt es noch eine andere möglichkeit Thread1 zu benachrichtigen eventuell über den Rückgabewert mit pthread_exit() ?
ps.: ich hab mit absicht auf synchro und main usw verzichtet da es nichts mit meiner frage zu tun hat nur das sich niemand wundert
habe beim googeln leider nichts brauchbares gefunden wäre für jede Hilfe dankbar
Danke im vorraus
Ich schreibe gerade an einem Programm welches 2 Threads erzeugt ein Thread erzeugt beliebige Zahlen der zweit Thread gibt das ganze auf der Konsole aus...
Nun das ganz funktioniert auch wunderbar jetzt möchte ich allerdings das sich der Thread zur ausgabe der Zahlen selbst beendet wenn er eine 0 übergeben bekommt
dies soll er dem Thread der die Zahlen erstellt mitteilen worauf sich dieser Thread auch beendet.
So nun die Frage wie kann ich das am besten implementieren ? brauch ich da wieder so etwas wie eine buffer in den Thread 2 reinschreibt.
ungefähr so :
Quellcode
- int buf; // buffer für thread2
- int buf2; // buffer für thread1 in dem die erzeugten zahlen zur Ausgabe bereit stehen
- /*Thread1 erzeugt zufallszahlen und schreibt sie in buf2*/
- void* rand (void* arg)
- {
- if(buf == 1)
- {
- pthread_exit((void*)0);
- }
- // do something
- }
- /*print liest aus buf2 und gibt die zahlen auf konsole aus*/
- void* print(void* arg)
- {
- if(buf2 == 0)
- {
- buf = 1;
- printf("ich beende mich selbst ");
- pthread_exit((void*) 0);
- }
- // do something
- }
oder gibt es noch eine andere möglichkeit Thread1 zu benachrichtigen eventuell über den Rückgabewert mit pthread_exit() ?
ps.: ich hab mit absicht auf synchro und main usw verzichtet da es nichts mit meiner frage zu tun hat nur das sich niemand wundert

habe beim googeln leider nichts brauchbares gefunden wäre für jede Hilfe dankbar
Danke im vorraus