patternjavaCritical
What does 'synchronized' mean?
Viewed 0 times
synchronizeddoeswhatmean
Problem
I have some questions regarding the usage and significance of the
synchronized keyword. - What is the significance of the
synchronizedkeyword?
- When should methods be
synchronized?
- What does it mean programmatically and logically?
Solution
The
strategy for preventing thread
interference and memory consistency
errors: if an object is visible to
more than one thread, all reads or
writes to that object's variables are
done through synchronized methods.
In a very, very small nutshell: When you have two threads that are reading and writing to the same 'resource', say a variable named
Again, this is a non-trivial topic in Java. To learn more, explore topics here on SO and the Interwebs about:
Keep exploring these topics until the name "Brian Goetz" becomes permanently associated with the term "concurrency" in your brain.
synchronized keyword is all about different threads reading and writing to the same variables, objects and resources. This is not a trivial topic in Java, but here is a quote from Sun:synchronized methods enable a simplestrategy for preventing thread
interference and memory consistency
errors: if an object is visible to
more than one thread, all reads or
writes to that object's variables are
done through synchronized methods.
In a very, very small nutshell: When you have two threads that are reading and writing to the same 'resource', say a variable named
foo, you need to ensure that these threads access the variable in an atomic way. Without the synchronized keyword, your thread 1 may not see the change thread 2 made to foo, or worse, it may only be half changed. This would not be what you logically expect.Again, this is a non-trivial topic in Java. To learn more, explore topics here on SO and the Interwebs about:
- Concurrency
- Java Memory Model
Keep exploring these topics until the name "Brian Goetz" becomes permanently associated with the term "concurrency" in your brain.
Context
Stack Overflow Q#1085709, score: 1003
Revisions (0)
No revisions yet.