181 |
|
* collections are unshared, or are accessible only when |
182 |
|
* holding other locks. |
183 |
|
* |
184 |
< |
* <p>Most concurrent Collection implementations (including most |
185 |
< |
* Queues) also differ from the usual java.util conventions in that |
186 |
< |
* their Iterators provide <em>weakly consistent</em> rather than |
187 |
< |
* fast-fail traversal. A weakly consistent iterator is thread-safe, |
188 |
< |
* but does not necessarily freeze the collection while iterating, so |
189 |
< |
* it may (or may not) reflect any updates since the iterator was |
190 |
< |
* created. |
184 |
> |
* <p id="WeaklyConsistent">Most concurrent Collection implementations |
185 |
> |
* (including most Queues) also differ from the usual {@code java.util} |
186 |
> |
* conventions in that their {@linkplain java.util.Iterator Iterators} |
187 |
> |
* and {@linkplain java.util.Spliterator Spliterators} provide |
188 |
> |
* <em>weakly consistent</em> rather than fast-fail traversal: |
189 |
> |
* <ul> |
190 |
> |
* <li>they may proceed concurrently with other operations |
191 |
> |
* <li>they will never throw {@link java.util.ConcurrentModificationException |
192 |
> |
* ConcurrentModificationException} |
193 |
> |
* <li>they are guaranteed to traverse elements as they existed upon |
194 |
> |
* construction exactly once, and may (but are not guaranteed to) |
195 |
> |
* reflect any modifications subsequent to construction. |
196 |
> |
* </ul> |
197 |
|
* |
198 |
|
* <h2 id="MemoryVisibility">Memory Consistency Properties</h2> |
199 |
|
* |