[ amel @ 09.07.2009. 21:00 ] @
Evo jedan zadatak iz Thread oblasti. Neka cudna masina uvecava svoj unutrasnji counter za jedan pri pozivu metode tick(). Metodom getTicks() se moze provjeriti trenutno stanje countera u masini. Ova masina takodje sadrzi jedno veliko crveno dugme. Pri pozivu metode waitForBigRedButton() masina ceka na pritisak na crveno dugme. Znaci pritiskom na to dugme se izlazi iz te metode. Konkretna implementacija te masine ovdje ne igra nikakvu ulogu. Implementira jedan Interface Code: interface Scwbrb { // Strange counter with big red button void tick(); // increment inner counter int getTicks() // read counter state void waitForBigRedButton(); } Implementiraj metodu stress koja provjerava Scwbrb. U jednoj petlji se citavo vreijeme pozivati metoda tick() dok neko ne pritisne crveno dugme. Pritiskom na dugme ce vrijednost masine biti vracena ka rezultat metode. Code: int stress(final Scwbrb s) { ... } Moje rijesenje: Code: public int stress(final Scwbrb s) { new Thread() { public void run() { while (true) s.tick(); } }.start(); new Thread() { public void run() { while(true) { s.waitForBigRedButton(); } } }.start(); return s.getTicks(); } Posto konkretna implementacija ove masine nije data, volio bih da mi neko provjeri tacnost, barem sa teoretskog aspekta. Hvala |