Ich würde gerne meinen main thread beenden ohne dass die Objekte in diesem gelöscht werden. Es soll also nur der childthread weiterleben. Gibt es da eine Möglichkeit?
Oder anders: Kann ich irgendwie meinen mainthread auf unbestimmte Zeit warten lassen. Also ohne getch() oder sleep()?
Du kannst den Thread einen anderen Thread joinen lassen, dann wartet er, bis der gejointe Thread beendet wurde. Wie das genau geht, hängt von der Bibliothek ab, die du benutzt. Auf POSIX-Systemen gibt es pthread_join, die boost::thread-Klasse hat eine Methode join() und so weiter. -- Einfachheit ist Voraussetzung für Zuverlässigkeit. -- Edsger Wybe Dijkstra
Threads zu joinen ist ne ziemlich normale Sache. Das so pauschal als Designfehler zu bezeichnen scheint mir etwas unangemessen. -- Einfachheit ist Voraussetzung für Zuverlässigkeit. -- Edsger Wybe Dijkstra
pause ist aber gefährlich, denn wenn du auf einer maschine z.b keine hardwarethreads hast, sondern nur softwaregesteuerte, dann warten auf einmal alle deine threads, weil das betriebsystem dir einfach den prozess schlafen legt. -- class God : public ChuckNorris { };