[ kolani83 @ 22.12.2011. 03:28 ] @
Potrbno mi je da kada se startuje program odmah pokrene while beskonacna petlja(radi nesto) koja se prekida nakon pritiska bilo kog tasrera.
Da li ima neko ideju? Pokusao sam System.in.read(); ali ova metoda ocekuje da se nesto unese pa tek onda while petlja nastavlja ili se prekida.
[ Dejan Lozanovic @ 22.12.2011. 09:05 ] @
Citat:
kolani83: Potrbno mi je da kada se startuje program odmah pokrene while beskonacna petlja(radi nesto) koja se prekida nakon pritiska bilo kog tasrera.
Da li ima neko ideju? Pokusao sam System.in.read(); ali ova metoda ocekuje da se nesto unese pa tek onda while petlja nastavlja ili se prekida.


Ovaj problem nije generalno vezan za javu , vec za sam operativni system. Naime operativni sistem smesti celu liniju u buffer. Za linux/unix moze sam terminal da se podesava tako da ne bude bufferisan input vec da dobijas karakter po karakter. Ali u svakom slucaju System.in.read(); ce da radi za enter.
[ sanchi @ 22.12.2011. 15:15 ] @
Mozes da stavis System.in.read() u poseban thread, tako da ti ne blokira petlju, pa onda u njemu setujes neki flag kada se karakter (odnosno enter) iscita koji ti je uslov za izlaz iz petlje.
[ kolani83 @ 22.12.2011. 16:23 ] @
Hvala na odgovorima. Imam jos jedno pitanje mozda nije vezano za ovu temu ali spada u javu :)
Kako jedna nit moze da kaze drugoj da prestane sa radom.
Tj. nit koju je @sanchi navela treba kaze drugoj niti da treba da zarsi posao(koji se izvrsava u beskonacnoj petlji).



[Ovu poruku je menjao kolani83 dana 22.12.2011. u 18:28 GMT+1]