Hovedprogram med flere parallelle tråde
Dette er nok et enkelt spm. Jeg har et program, hvor en række opgaver pt. afvikles sekventielt. For at speede det op vil jeg lade programmet afvikle opgaverne i separate tråde, men selve hovedprogrammet skal først fortsætte, når samtlige tråde er færdige.Hvordan designer man dette på den rigtige måde?
______________
Jeg tænker således (har dog ingen erfaring omkring dette):
1. Hovedprogrammet holder styr på antallet af startede tråde (total). Når en tråd er færdig, opskriver den en tæller i hovedprogrammet (antal). Hovedprogrammet indeholder en do-løkke:
do {
} while (antal<total);
Hovedprogrammet vil derfor køre rundt i denne løkke, indtil alle tråde er færdige og derefter fortsætte.
2. Delen af hovedprogrammet, der skal fortsætte, når alle tråde er færdige, er selv en tråd. Hver opgave-tråd opskriver antal og starter derefter hovedprogrammets tråd, når antal==total.
Jeg er lidt usikker på om metoden i 1. vil drosle afviklingen ned, idet hovedprogrammet bruger unødig tid på at køre rundt i en løkke.
