Everything about Volatile (computer programming)
Keyword used in some programming languages to tag variables
In computer programming, a variable is said to be volatile if its value can be read or modified asynchronously by something other than the current thread of execution. The value of a volatile variable may spontaneously change for reasons such as: sharing values with other threads; sharing values with asynchronous signal handlers; accessing hardware devices via memory-mapped I/O . Support for these use cases varies considerably among the programming languages that have the volatile keyword. Volatility can have implications regarding function calling conventions and how variables are stored, accessed and cached. Wikipedia →
đź§ Start here: a 6-step reading path
- Read the overview: Volatile (computer programming)A 5-minute orientation
- Pick up a classic book: User's guide to the personal computer version of the Biogenic Emissions Inventory System (PC-BEIS2)The most-reprinted book on the subject
- Go sideways: Memory barrierA closely related topic
- Go sideways: Double-checked lockingA closely related topic
đź“– Definitions
No dictionary entry for this exact phrase.
🗂️ The subject at a glance
🏆 Landmark papers (most cited)
- No matching papers found.
📚 Books worth reading
- 📕User's guide to the personal computer version of the Biogenic Emissions Inventory System (PC-BEIS2)Terri L Birth · 1995
Ranked by number of editions on Open Library, a rough measure of how lasting a book is.
đź”— Related topics
- Memory barrier In computing, a memory barrier, also known as a membar, memory fence or fence instruction, is a type of barrier instruction that causes a central processing…
- Double-checked locking In software engineering, double-checked locking (also known as "double-checked locking optimization") is a software design pattern used to reduce the overhead…
- Memory ordering Memory ordering is the order of accesses to computer memory by a CPU. Memory ordering depends on both the order of the instructions generated by the compiler…
- Java concurrency The Java programming language and the Java virtual machine (JVM) are designed to support concurrent programming. All execution takes place in the context…
- Memory model (programming) In computing, a memory model describes the interactions of threads through memory and their shared use of the data. A memory model allows a compiler to…
- Dekker's algorithm Dekker's algorithm is the first known correct solution to the mutual exclusion problem in concurrent programming where processes only communicate via shared…
- Type qualifier In the context of programming languages, a type qualifier is a keyword that can be used to annotate a type to instruct the compiler to treat the now qualified…
- Java memory model The Java memory model describes how threads in the Java programming language interact through memory. Together with the description of single-threaded…