ประเด็นสำคัญของ ConcurrentHashMap: คลาส ConcurrentHashMap คือ thread-safe เช่น หลายเธรดสามารถทำงานบนวัตถุเดียวได้โดยไม่มีความยุ่งยากใดๆ … ใน ConcurrentHashMap ออบเจ็กต์จะถูกแบ่งออกเป็นจำนวนเซ็กเมนต์ตามระดับการทำงานพร้อมกัน
ปลอดภัยต่อด้ายหรือไม่
อ็อบเจ็กต์ MessageService นั้นเปลี่ยนไม่ได้อย่างมีประสิทธิภาพเนื่องจากสถานะไม่สามารถเปลี่ยนแปลงได้หลังจากสร้าง ดังนั้น มันปลอดภัยสำหรับเธรด นอกจากนี้ หาก MessageService สามารถเปลี่ยนแปลงได้จริง แต่หลายเธรดมีการเข้าถึงแบบอ่านอย่างเดียวเท่านั้น มันก็ปลอดภัยสำหรับเธรดเช่นกัน
ขนาดเธรด ConcurrentHashMap ปลอดภัยหรือไม่
Class ConcurrentHashMap ตารางแฮชที่รองรับการดึงข้อมูลพร้อมกันแบบเต็มและการทำงานพร้อมกันที่คาดไว้สูงสำหรับการอัปเดต … อย่างไรก็ตาม แม้ว่า การดำเนินการทั้งหมดเป็นแบบปลอดภัยต่อเธรด การดำเนินการดึงข้อมูลไม่ได้มีการล็อก และไม่มีการสนับสนุนสำหรับการล็อกทั้งตารางในลักษณะที่ป้องกันการเข้าถึงทั้งหมด
HashMap นั้นปลอดภัยสำหรับเธรดหรือไม่
HashMap ไม่มีการซิงโครไนซ์ ไม่ปลอดภัยสำหรับเธรด และไม่สามารถแชร์ระหว่างหลายเธรดโดยไม่มีรหัสการซิงโครไนซ์ที่เหมาะสมในขณะที่ Hashtable ถูกซิงโครไนซ์
เหตุใด ConcurrentHashMap จึงไม่ปลอดภัย
แพ็คเกจพร้อมกัน เช่น ConcurrentHashMap, CopyOnWriteArrayList ฯลฯ ไม่ปลอดภัย ในธรรมชาติ ในข้อมูลโค้ดด้านบน เราใช้ Fail-Safe Iterator ดังนั้น แม้ว่าจะมีการเพิ่มองค์ประกอบใหม่ลงในคอลเลคชันในช่วงวนซ้ำก็ไม่มีข้อยกเว้น