Table of Contents

Lab 12 - Vícevláknové aplikace

Procvičovaná téma

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.

Úkol na cvičení je implementace aplikace z přednášky lec11, kterou lze přímo použít. Nicméně postupná a samostatná implementace umožní pochopit principy. Proto postupujte samostatně, což následně může ušetřit čas při implementaci HW 9 i HW 9B.

Úkoly

Tipy

   bool quit = false;
   ...
   gechar();
   pthread_mutex_lock(&mtx);
   quit = true;
   pthread_mutex_unlock(&mtx);
   ...

Další úkoly na cvičení

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.