Wenn Threads steigern werden zu :: thread_group wie:Wie lösche ich das Boost-Thread-Objekt, wenn der Thread selbst beendet wird?
boost::thread_group my_threads;
boost::thread *t = new boost::thread(&someFunc);
my_threads.add_thread(th);
alle erstellten boost :: Thread-Objekte nur gelöscht werden, wenn my_threads
Objekt außerhalb des Bereichs ist. Aber mein Programm-Haupt-Thread erzeugt während der Ausführung viele Threads. Wenn also ungefähr 50 Threads bereits erledigt sind, wird ungefähr 1,5Gb des Speichers vom Programm verwendet und dieser Speicher wird nur beim Hauptprozessbeendigung freigegeben.
Die Frage ist: Wie Sie diese boost :: Thread-Objekt löschen, wenn die Thread-Funktion beendet ist?!
Ich glaube, diese Frage ist ähnlich: http://stackoverflow.com/questions/3970818/whats-the-best-way-to-delete-boostthread-object-right-after-its-work-is-compl – Naveen
@ Naveen, ich brauche wirklich einen Wrapper, der alle gepoolten Kinder-Threads unterbrechen kann, wenn der Haupt-Thread danach fragt. In der Frage, die du verlinkt hast, empfehlen sie, nur einen Thread zu erstellen und das boost :: thread-Objekt davon zu lösen. –