Hirdetés

Új hozzászólás Aktív témák

  • #03372544
    törölt tag

    Köszönöm.

    Egy újabb kérdésem lenne: adott egy osztály ami Runnable-t implementál sok hosszú egymást követő folyamatból áll. Hogyan tudnám megszakítani a futását?
    While-ba rakva a flaget változtatva csak akkor áll meg, ha már a végére ért.

    ezt próbáltam:

    public void run() {
    while(!Thread.currentThread().isInterrupted()) {
    //do time consuming stuff
    }
    }
    public void stop() {
    Thread.currentThread().interrupt();
    }

    Sehogy, az interrupt() csak beállít egy flag-et amit neked kell futás közben ellenőrizned az isInterrupted() metódussal.
    Egy-az-egyben kilőni a szálat nem tudod, régen lehetett a stop() metódussal de az elég sok problémát felvet ezért későbbi Java verziókban deprecated lett majd ki is vették, UnsupportedOperationExcepcion-t dob hogy véletlenül se használd.

Új hozzászólás Aktív témák