同步集合与并发集合都为多线程和并发提供了合适的线程安全的集合,不过并发集合的可扩展性更高。在 Java 1.5 之前程序员们只有同步集合来用且在多线程并发的时候会导致争用,阻碍了系统的扩展性。Java 5 介绍了并发集合像 ConcurrentHashMap,不仅提供线程安全还用锁分离和内部分区等现代技术提高了可扩展性。
同步集合是一种可以保证线程安全的集合,它在对集合进行读写操作时会进行同步处理,保证多个线程同时对集合进行操作时不会发生数据竞争和错误,常见的同步集合有 HashTable 和 ConcurrentHashMap。
而并发集合则是一种专门针对多线程情况下的集合,它通过使用更加高效的数据结构和算法来提升多线程读写操作时的性能和效率,常见的并发集合有 ConcurrentHashMap,CopyOnWriteArraySet 和 ConcurrentLinkedQueue 等。
总的来说,同步集合主要是通过解决线程安全问题来保证多线程环境下程序的正确性,而并发集合则更关注在多线程环境下集合的性能和效率。

