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:

ksywa:

tu wpisz cyfrę cztery: (to takie zabezpieczenie antyspamowe)

komentarze wulgarne albo co mi się nie spodobają będę kasował


powrot na strone glowna

RSS