The ordinary collections, ArrayList, HashMap and so on, are not thread-safe. If several threads modify one without coordination you can lose updates, corrupt the internal structure or get a ConcurrentModificationException. Wrapping with Collections.synchronizedList(list) or synchronizedMap makes each method call synchronized on one lock, which is correct but serializes all access, and you must still synchronize manually while iterating. The java.util.concurrent package offers collections designed for concurrency.
Keep reading for free
Create a free StudyToCert account to read the rest of this lesson: 5 more sections, 4 key terms, a real-world example, an exam tip and self-check questions. Every lesson, lab and practice test is free with an account.