diff --git a/practice/volatile1/RunVolatile.java b/practice/volatile1/RunVolatile.java new file mode 100644 index 000000000..d72cad490 --- /dev/null +++ b/practice/volatile1/RunVolatile.java @@ -0,0 +1,24 @@ +package volatile1; + +public class RunVolatile { + public static void main(String[] args) { + RunVolatile runVolatile = new RunVolatile(); + runVolatile.runVolatitleSample(); + } + + public void runVolatitleSample() { + VolatileSample sample = new VolatileSample(); + sample.start(); + + try { + Thread.sleep(1000); + } catch(Exception e) { + e.printStackTrace(); + } + + System.out.println("RunVolatitle : sleep() end "); + sample.setDouble(-1); + System.out.println("RunVolatitle : Set value is completed !"); + + } +} diff --git a/practice/volatile1/VolatileSample.java b/practice/volatile1/VolatileSample.java new file mode 100644 index 000000000..0da64e7b4 --- /dev/null +++ b/practice/volatile1/VolatileSample.java @@ -0,0 +1,22 @@ +package volatile1; + +public class VolatileSample extends Thread { + + private double instanceVariable = 0; + + void setDouble(double value) { + this.instanceVariable = value; + } + + public void run() { + System.out.println("--------------------- VolatileSample : run() start "); + + while(instanceVariable == 0) { + System.out.println("--------------------- VolatileSample : while ing... "); + } + + System.out.println("--------------------- VolatileSample : instanceVariable : "+instanceVariable); + + System.out.println("--------------------- VolatileSample : run() end "); + } +}