Zdravim,
mam takovy problem s vlaknem. Mam nize uvedene vlakno, ktere po startu spustim s m_konec nastavenym na true, takze jde vlakno hned do spanku. Coz je dobre. Potom vlakno probudim metodou interrunt() a nastavim m_konec na false. V teto chvili ale chci, aby vlakno pokracovalo a provadel se cyklus do-while, ve kterem mam hlidani interrupted(). Toto hlidani tam mam z duvodu, kdy potrebuju predcasne ukoncit cele vlakno a prave se nachazi v tomto cyklu. Problem ale je, ze pri prvnim spusteni, kdyz provedu interrupt() tohoto vlakna (probuzeni), tak se prerusi hned i ten cyklus, coz nechci. Nevite nekdo, jak to obejit?

Potrebuju od vlakna:
- na zacatku uspat
- pote probudit a pokracovat cyklem do-while
- v pripade, ze je vlakno v cyklu do-while moct vlakno predcasne ukoncit z mainu. - toto vlakno je v nekonecnem cyklu a zastavuje se interruptem a nastavenim m_konec na tru

Diky moc.

Martin



   class Vlakno extends Thread {
      boolean dockal_se = false;

       public void run(){

           while(true) {
if(m_konec) {
                   try {
Thread.sleep(dlouhy_cas); } catch (InterruptedException ex) {
                       System.out.println("probuzeno");
} } do {
                   if (interrupted()) {
                       return;
                   }
// cekani na neco..napr. na nastaveni nejake synch. glob. promenne v jinem vlakne } while(dockal_se); }
       }
   }

Odpovedet emailem