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.
main()
funkce
Enter
přepněte terminál do raw
režimu, například tak jak bylo prezentována v přednášce lec08
"\rAlarm period: %10i Alarm counter: %10i"
flush
na stdout
ve výstupním vlákně, např. jako fflush(stdout);
quit
k indikaci, že program bude ukončen jakmile uživatel stiskne klávesu Enter
např.
bool quit = false; ... gechar(); pthread_mutex_lock(&mtx); quit = true; pthread_mutex_unlock(&mtx); ...
V další části cvičení pokračujte implementací domácího úkolu HW08.