Sto creando circa 300 thread di boost in un processo. C'è un modo per partecipare a un thread specifico basato sull'ID thread?Unire un thread di boost specifico
risposta
Dipende in modo celeste da come si salva il numero boost::thread
s. Se li si salva in un contenitore (con T = boost::thread*
), si può semplicemente usare qualcosa come
for(iterator it = ctn.begin(); it != ctn.end(); ++it){
if(it->get_id() == join_thread_id){
it->join();
break;
}
}
Tuttavia, se non si salvano le discussioni da qualche parte e basta usare new boost::thread
senza salvare il puntatore non è possibile, in quanto spinta doesn Fornire funzionalità di contabilità automatica.
1. Nota: tenere presente che è necessario utilizzare boost::thread::id
per salvare l'ID.
2. Nota: std::map<boost::thread::id,boost::thread*>
potrebbe rivelarsi utile per tali attività.
o 'find_if (begin (ctn), end (ctn), [join_thread_id] (iteratore it) {return it-> get_id() == join_thread_id;}); ' –
Se ci sono molti thread, la mappa non è migliore ?. Lo sto chiedendo con le prestazioni in mente. –
@ AdriC.S .: Dipende dal significato di 'un sacco di'. Una mappa si adatta bene al numero di argomenti (complessità di ricerca sub-lineare), ma a seconda del numero effettivo di elementi, un vettore piccolo può sovraperformare una piccola mappa. –
- 1. quando staccare o unire un filo di boost?
- 2. Cosa significa "unire" un thread?
- 3. Come unire un commit specifico in Git
- 4. Subversion: Come unire un commit specifico
- 5. Ottieni un vantaggio specifico con boost :: grafico
- 6. PThread vs boost :: thread?
- 7. Boost Thread Cancel
- 8. Come interrompere/interrompere un boost :: thread?
- 9. Unire thread interrompibile in Python
- 10. boost :: asio, thread e sincronizzazione
- 11. Come faccio a unire/aggiornare un boost :: property_tree :: ptree?
- 12. boost :: asio, pool di thread e monitoraggio thread
- 13. Riferimento indefinito a Boost Thread
- 14. Cosa fa boost :: thread sleep()?
- 15. boost :: thread all'interno di una classe
- 16. come compilare la libreria di thread boost
- 17. C++ Lasciando un thread di boost attendere 1 secondo
- 18. Come creare un pool di thread usando boost in C++?
- 19. Come eliminare l'oggetto boost boost quando termina il thread stesso?
- 20. Richiamare un delegato su un thread specifico C#
- 21. Perché devi unire esplicitamente i thread?
- 22. std :: vector or boost :: vector thread safe?
- 23. tr1 :: hash per boost :: thread :: id?
- 24. Partecipare a un'istanza boost :: thread nel distruttore
- 25. Come includere boost :: thread nel progetto C++?
- 26. forward declaration of boost :: thread variable
- 27. Esempio di pool di thread dinamici in boost :: asio
- 28. Utilizzo di boost :: asio pool di thread per attività generiche
- 29. Come bloccare un NSLock su uno specifico thread
- 30. Il processo CLOCK_MONOTONIC (o thread) è specifico?
Come stai gestendo questi thread? (Ti ricordi in qualche modo che i fili sparati, vero?) –