Знам, че мога да наричам нишка.join (), за да принуди нишката да приключи, преди текущата нишка да може да продължи. Въпреки това, програмата ми има куп файлове, които се четат в паметта, модифицират се и след това се промиват на диск. Всеки флъш се извършва в отделен конец, така че текущата нишка да може да продължи, докато съдържанието се промива на диск.
Мога да запазя набор от всички зародирани нишки ислед това се присъединете към тях в края на изпълнението на главната нишка, но ако програмата работи дълго време, може да има огромен брой флъш-нишки, повечето от които са завършени.
Има ли някакъв начин да се присъедините към всички активен конци преди да продължите и да излезете от главната нишка?
Отговори:
4 за отговор № 1Ако темите са завършили изпълнение, тевсъщност вече не са теми. Не виждам вашата загриженост. Аз за един би обмислил използването на пула за нишки. Ако искате да запазите списък с всички използвани нишки boost::thread_group
, И присъединяване всичко конците са по същество и ефективно същите като свързването на всички активен теми, тъй като се присъединят към не-A-нишка се връща незабавно. HTH