What happens when a volatile variable is declared in Java programming?
- All reads and writes go straight to main memory
- It holds a lock
- It behaves as if enclosed in an asynchronous block
- The value of the variable will be cached locally
EXPLANATION
The Java volatile variable is an example of a special mechanism to guarantee that communication happens between threads. Basically, the value of the variable can be modified by different threads. When you declare a volatile variable, the value of this variable will never be cached thread-locally. Instead, all reads and writes will go straight to main memory. Access to the variable acts as though it is enclosed in a synchronized block, synchronized on itself.Access to a volatile variable never has the potential to block because you can only ever do a simple read or write, so unlike a synchronized block it never holds on to any lock. Because of this, volatile variables are not suited for cases where you want to use read-update-write as an atomic operation, unless you are willing to miss an update.
0 comments:
Post a Comment