od marxin » 17. 2. 2010 18:21
./a.out <n> <m>
Úkolem je napsat program, který vytvoří n-týmů po m vláknech. Z main vlákna je náhodně vygenerováno číslo v intervalu 1..#týmů, a je odeslán broadcast na podmínkovou proměnnou, poté se probudí jedno vlákno týmu, jehož číslo main vlákno vybralo, vypíše o tom hlášku a vygeneruje číslo týmu, který se bude budit. Opět pomocí volání pthread_cond_broadcast se vzbudí jedno vlákno vybraného teamu a atd. dokud jsou nějaká vlákna.
Podmínky: pouze 1 mutex a 1 cond. proměnná
Vytvořit čítač vláken skupin, tedy např. [1,2,3] značí, že v 1. skupině je ještě 1 vlákno, ve 2. 2, atd...
Řešení není těžké, trochu jsem se zamotal do alokace dynamického pole s informacemi pro vlákna.
- Přílohy
-
- team.c
- Zdrojový kód
- (4.25 KiB) Staženo 301 x
./a.out <n> <m>
Úkolem je napsat program, který vytvoří n-týmů po m vláknech. Z main vlákna je náhodně vygenerováno číslo v intervalu 1..#týmů, a je odeslán broadcast na podmínkovou proměnnou, poté se probudí jedno vlákno týmu, jehož číslo main vlákno vybralo, vypíše o tom hlášku a vygeneruje číslo týmu, který se bude budit. Opět pomocí volání pthread_cond_broadcast se vzbudí jedno vlákno vybraného teamu a atd. dokud jsou nějaká vlákna.
Podmínky: pouze 1 mutex a 1 cond. proměnná
Vytvořit čítač vláken skupin, tedy např. [1,2,3] značí, že v 1. skupině je ještě 1 vlákno, ve 2. 2, atd...
Řešení není těžké, trochu jsem se zamotal do alokace dynamického pole s informacemi pro vlákna.