2014.09.04 05:31
przykład, że czasem volatile w Javie jest potrzebne
Nieraz zapominam, jak wyglądał taki przykład co pokazywał, że czasem volatile w Javie jest potrzebny. Więc odnotowuję go tutaj, żeby mieć pod ręką:
public class Test implements Runnable {
public static boolean dzialaj = true;
public static void main(String[] werfwe) {
new Thread(new Test()).start();
try {
Thread.sleep(2000);
dzialaj = false;
} catch (Exception e) {}
}
public void run() {
int i = 0;
while (dzialaj) {
i++;
}
}
}
Jeśli go się skompiluje i uruchomi Javą 5 pod Linuksem (do ściągnięcia z http://www.oracle.com/technetwork/java/javasebusiness/downloads/java-archive-downloads-javase5-419410.html ), to nigdy nie skończy działania. Chyba że się atrybut dzialaj oznaczy jako volatile.
komentarze:
powrót na stronę główną
RSS