How volatile keyword works in Java Multithreading?

How volatile keyword works in Java Multithreading?