Archief - [PROG][JAVA] een soort van break-statement gezocht

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

ipodtouch_rules

Legacy Member
Beste mede-programmeurs,

bestaat er een manier om van buitenaf een (labeled) loop te doen stoppen ?

Cheers, Michael

killgore

Legacy Member
in de loop iets zetten als && !stop

en dan stop op true zetten.

(basismechanisme voor thread-termination enzo :p)

yannick

Legacy Member
Yep, ne setter maken om stop op true te zetten et voila :).

grtz

ipodtouch_rules

Legacy Member
ok, na uren zoeken is het opgelost... :crazy:
Ik zit met een overervingshierarchie en blijkbaar had ik een String als gewone variabele gedeclareerd in de allerhoogste super-klasse . Ik dacht heel de tijd dat ik met een statische variabele te maken had...:rofl:

Mercikes, Michael

ipodtouch_rules

Legacy Member
ik wil even mijn frustraties kwijt. Ik zit hier nu gans de tijd te klooien omdat deze statements achteraf gezien niet functioneerden naar behoren:

boolean AAN=true;
if(AAN=true){ System.out.println("zal nooit bereiken");}

else{System.out.println("bereikt altijd");}


rara , zoek de fout....(ik heb ze al gevonden)

:puke:

forloRn_

Legacy Member
Mja, je moet natuurlijk == gebruiken om te vergelijken. Je had beter

Code:
if (aan) {
  ...
} else {
...
}

geschreven. Gewone variabelen schrijf je trouwens met kleine lettertjes in Java.

En 't is nog niet gedaan met de kritiek. :p Als je een boolean gebruikt om vanuit een andere thread een loop te stoppen, moet je hem volatile maken.

killgore

Legacy Member
forloRn_ zei:
En 't is nog niet gedaan met de kritiek. :p Als je een boolean gebruikt om vanuit een andere thread een loop te stoppen, moet je hem volatile maken.

neen hoor, gewoon je accessors synchronized :p. volatile is niet nodig als je de locks goed doet.

Bavo aka Joske

Legacy Member
Volatile is in dat geval wel de beste, meest performante, optie. Daar dient het voor. Mooitje van Forlorn, moest het zelf eens opzoeken :)

killgore

Legacy Member
meest performante: agree
beste: disagree, het is zeer gevaarlijk iets volatile te maken en u te baseren op die atomaire operaties (zeker als je later uitbreidingen gaat doen).

yannick

Legacy Member
Ja zelfs zoiets simpels kan moeilijk worden gemaakt in Java :D.

Bavo aka Joske

Legacy Member
killgore zei:
meest performante: agree
beste: disagree, het is zeer gevaarlijk iets volatile te maken en u te baseren op die atomaire operaties (zeker als je later uitbreidingen gaat doen).

Voor een simpele flag? Zo gevaarlijk lijkt me dat niet

forloRn_

Legacy Member
Ik vind dit net iets overzichtelijker dan setRunning() en isRunning() synchronizen:

Code:
public class MyClass implements Runnable {
  private volatile boolean running = true;

  public void run() {
    while (running) {
     // ...
    }
  }

  public void stop() {
    running = false;
  }
}
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan