/ / Как мога да се уверя, че всичките ми c ++ boost нишки завършат преди програмата да излезе? - C ++, многонишковост, тласък

Как мога да се уверя, че всичките ми модули за стимулиране на C ++ завършат преди излизането на програмата? - C ++, многоточкови, тласък

Знам, че мога да наричам нишка.join (), за да принуди нишката да приключи, преди текущата нишка да може да продължи. Въпреки това, програмата ми има куп файлове, които се четат в паметта, модифицират се и след това се промиват на диск. Всеки флъш се извършва в отделен конец, така че текущата нишка да може да продължи, докато съдържанието се промива на диск.

Мога да запазя набор от всички зародирани нишки ислед това се присъединете към тях в края на изпълнението на главната нишка, но ако програмата работи дълго време, може да има огромен брой флъш-нишки, повечето от които са завършени.

Има ли някакъв начин да се присъедините към всички активен конци преди да продължите и да излезете от главната нишка?

Отговори:

4 за отговор № 1

Ако темите са завършили изпълнение, тевсъщност вече не са теми. Не виждам вашата загриженост. Аз за един би обмислил използването на пула за нишки. Ако искате да запазите списък с всички използвани нишки boost::thread_group, И присъединяване всичко конците са по същество и ефективно същите като свързването на всички активен теми, тъй като се присъединят към не-A-нишка се връща незабавно. HTH