zhruba takhle jsem si poznamenal zadání
program 2 parametry
cislo, filename
cislo je rozmer pole
soubor - matice cisel
121
345
138
nemusi se kontrolovat, jak to vypada
-> do dvojrozmerneho pole
spustit n vlaken, kazde vlanko zpracuje jeden radek
-spocist celociselny prumer na radku a nahradit cisla prumerem
-upspat se na bariere
-posledni vlakno probude vsechny ostatnikazde vlakno dostane sloupec, secte cisla, cislo na pozici sveho indexu pricte dvakrat
-uspat se na bariere
-to same co u jedniciky
-vypsat ten soucet
vypisovat :
vytvoreni vlakna
kazde vlakno ma id(ID)
prichod na barieru
probouzeni z bariery
specialni hlaska pro posledni vlakno na bariere (co probouzi ostatni)
A jak se to udela?
viz. http://wiki.matfyz.cz/wiki/SWI015_P%C5%99%C3%ADklady úplně dole + trocha triviálního kódění
pozn. místo
for (i = 1; i < NTHREADS; i++) pthread_cond_signal(ts->cv);
je lepší použít
pthread_cond_broadcast(ts->cv);
Hodně štěstí na dalších termínech.
:wq