Skip to content

Instantly share code, notes, and snippets.

@ajaynitt
Created December 4, 2019 08:24
Show Gist options
  • Save ajaynitt/3b0e6f859faef600ccbbf9b938f5a28c to your computer and use it in GitHub Desktop.
Save ajaynitt/3b0e6f859faef600ccbbf9b938f5a28c to your computer and use it in GitHub Desktop.
volatile keyword example in java
package com.ajay.volatile_example;
public class VolatileTest {
private static volatile int MY_INT = 0;
public static void main(String[] args) {
new ChangeListener().start();
new ChangeMaker().start();
}
static class ChangeListener extends Thread {
@Override
public void run() {
int local_value = MY_INT;
while ( local_value < 5){
if( local_value!= MY_INT){
System.out.println("Got Change for MY_INT : " + MY_INT);
local_value= MY_INT;
}
}
}
}
static class ChangeMaker extends Thread{
@Override
public void run() {
int local_value = MY_INT;
while (MY_INT <5){
System.out.println( "Incrementing MY_INT to " + (local_value+1));
MY_INT = ++local_value;
try {
Thread.sleep(500);
} catch (InterruptedException e) { e.printStackTrace(); }
}
}
}
}
@ajaynitt
Copy link
Author

ajaynitt commented Dec 4, 2019

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment