Java flüchtig für Parallelität

Ok also habe ich gerade diese Frage gelesenVerwenden Sie jemals das flüchtige Schlüsselwort in Java?, und ich benutze eine flüchtige Variable, um eine Schleife zu stoppen. Auch ich habe diese Referenz gesehen,http: //www.javamex.com/tutorials/synchronization_volatile.shtm. Jetzt heißt es in dem Artikel, dass flüchtige Variablen nicht blockieren. Außerdem heißt es, dass es nicht für die gleichzeitige Verwendung in einer Lese-Update-Schreibsequenz verwendet werden kann. Was Sinn macht, weil sie nicht blockieren.

Da flüchtige Variablen niemals zwischengespeichert werden, ist es schneller, einfach die Synchronisation zu verwenden, um die Schleife zu stoppen (vom früheren Link)?

Bearbeiten: Verwenden einer synchronisierten Lösung

public class A{
  private boolean test;

  public A(){
    test = true;
  }

  public synchronized void stop(){
    test = false;
  }

  public synchronized boolean isTrue(){
    return test;
  }
}

public class B extends Thread {
  private A a;

  public B(A refA){
    a = refA;
  }

  public void run(){
    //Does stuff here
    try{
      sleep(1000);
    }
    catch(Exception e){}
    a.stop();
  }

  public static void main(String [] args){
    A TestA = new A();
    B TestB = new B(TestA);
    TestB.start();
    while(TestA.isTrue()){
      //stay in loop
      System.out.println("still in loop");
    }
    System.out.println("Done with loop");
  }
 }

Antworten auf die Frage(4)

Ihre Antwort auf die Frage