Is The Volatile Mark Necessary For A Queue With One Thread Adding And Another Reading?
Solution 1:
Use lock objects if you want synchronized access like you've mentioned.
Volatile is not really used in this context. Declaring your List myList
object as volatile would mean that if you ever tried to instantiate a new Object and set it to the myList variable, then the thread would be guaranteed to know that there is a new object assigned to it (roughly). It doesn't block or synchronize anything to do with the actual object.
Basically, like you said, you need to be sure that when you are reading or writing to the list, that nothing will mess the list up and cause an unexpected error. For stopping two things from happening at the same time, use lock objects and the Java synchronized keyword, or use a List type that already synchronizes read/writes for you.
Post a Comment for "Is The Volatile Mark Necessary For A Queue With One Thread Adding And Another Reading?"