Search
Výchozí soubory prga-lab12-sources.zip bab36prga-lec11-codes.zip
Cílem cvičení je implementovat program s třemi paralelně běžícími vlákny. První vlákno je určeno pro zpracování vstupu (čtení stiknuté klávesy), druhé vlákno aktualizuje výstup (jednořádkový) a třetí vlákno implementuje časovač, který po uplynutí definované periody zvýší hodnotu proměnné (čítače). Perioda může být nastavována uživatelem, stiskem definovaných kláves. Použití vláken je založeno na knihovně pthread (POSIX threads) a příklad demonstruje použití základních konstrukcí pthread knihovny.
pthread
main()
Enter
raw
"\rAlarm period: %10i Alarm counter: %10i"
flush
stdout
fflush(stdout);
quit
bool quit = false; ... gechar(); pthread_mutex_lock(&mtx); quit = true; pthread_mutex_unlock(&mtx); ...
V další části cvičení pokračujte směrem k implementaci aplikace HW 9 - Vícevláknová aplikace s meziprocesovou komunikací. Například program rozdělte na dvě aplikace komunikující pojmenovanou rourou (vizte Lab 10). Jedna aplikace může realizovat vláknou pro tisk na obrazovku a druhá aplikace umožní nastavit periodu.