"I guess ...", yes, it's about atomicity. The reading of the pointer value, which points to either old or a new collection is safe, but ensuring writing/reading pointer is atomic require lock. From my desktop applications experience atomicity is really not an issue, I read/write values from different threads without locks and never had a problem.
↧