Quando vengono aggiunti fili per amplificare :: thread_group come:Come eliminare l'oggetto boost boost quando termina il thread stesso?
boost::thread_group my_threads;
boost::thread *t = new boost::thread(&someFunc);
my_threads.add_thread(th);
tutti gli oggetti boost :: thread creato vengono eliminati solo quando my_threads
oggetto è fuori portata. Ma il thread principale del mio programma genera molti thread durante l'esecuzione. Quindi, se sono già stati effettuati circa 50 thread, circa il 1,5 GB di memoria viene utilizzato dal programma e questa memoria viene liberata solo dalla terminazione del processo principale.
La domanda è: Come eliminare questi oggetto boost :: thread quando la funzione thread è terminata?!
Credo che questa domanda sia simile: http://stackoverflow.com/questions/3970818/whats-the-best-way-to-delete-boostthread-object-right-after-its-work-is-compl – Naveen
@Naveen, ho davvero bisogno di un wrapper in grado di interrompere tutti i thread figli in pool quando il thread principale lo richiede. Nella domanda che hai collegato loro raccomandano semplicemente di creare un thread e staccare l'oggetto boost :: thread da esso. –