Seminář 11 (Úkoly)
Úkol č.1
Napište program, který bude obsahovat dvě vlákna. Jedno vlákno bude provádět výpočet fibonacciho čísla rekurzivní metodou (zvolte vhodné číslo) a druhé bude na standardní výstup v sekundových intervalech vypisovat, jak dlouho již výpočet běží. (Použijte metodu System.currentTimeMillis()
.) V případě, že první vlákno skončí, skončí činnost i vlákno druhé a poté je vypsán výsledek. K synchronizaci vláken použijte sdílenou proměnnou. Zajistěte, že přístup k ní bude řádně synchronizován.
Úkol č.2
Napište metodu int parfib(int n, int k)
, která vypočítá n
-té fibonacciho číslo, ale k výpočtu použije až k
vláken. Pokud máte možnost, ověřte na víceprocesorovém počítači, že program běží rychleji. Kód okomentujte, aby bylo možné pochopit, jak probíhá paralelizace.
Vyřešené úkoly zašlete do 11.12.2014 17:00 CET na email petr.krajca (zavináč) upol.cz s předmětem ZP3JV. Zasílejte pouze zdrojové kódy. Pokud chcete zdrojové kódy poslat zkomprimované, použijte buď formát zip nebo kombinaci tar+gz.