วีดีโอ: เธรดแผนที่ปลอดภัยหรือไม่
2024 ผู้เขียน: Lynn Donovan | [email protected]. แก้ไขล่าสุด: 2023-12-15 23:54
1. ภาพรวม แผนที่ เป็นรูปแบบหนึ่งของคอลเลกชัน Java ที่แพร่หลายที่สุด และที่สำคัญ HashMap ไม่ใช่ a เกลียว - ปลอดภัย การใช้งานในขณะที่ Hashtable ให้ เกลียว - ความปลอดภัย โดยการซิงโครไนซ์การทำงาน
ผู้คนยังถามว่าเธรดแผนที่ Golang ปลอดภัยหรือไม่?
มันไม่ใช่ เกลียว - ปลอดภัย (หรือพร้อมกัน ปลอดภัย ) เมื่ออ่าน/เขียน เกิดขึ้นกับ goroutine มากกว่าหนึ่งตัว นี่คือเหตุผลที่ไลบรารีมาตรฐานมีเครื่องมือสองสามอย่างให้คุณใช้ในรูปแบบของการซิงโครไนซ์เบื้องต้น
ความปลอดภัยของเธรดหมายความว่าอย่างไร ความปลอดภัยของเธรดคือ แนวคิดการเขียนโปรแกรมคอมพิวเตอร์ที่ใช้กับ เกลียว รหัส. เกลียว - ปลอดภัย โค้ดจะจัดการเฉพาะโครงสร้างข้อมูลที่ใช้ร่วมกันในลักษณะที่ทำให้แน่ใจได้ว่าทั้งหมด กระทู้ ประพฤติตนอย่างถูกต้องและปฏิบัติตามข้อกำหนดการออกแบบโดยไม่ต้องมีปฏิสัมพันธ์โดยไม่ได้ตั้งใจ
อาจมีคนถามว่า ConcurrentHashMap ใส่เธรดปลอดภัยหรือไม่
ConcurrentHashMap คลาสคือ เกลียว - ปลอดภัย เช่น ทวีคูณ เกลียว สามารถทำงานบนวัตถุชิ้นเดียวได้โดยไม่มีความยุ่งยากใดๆ ในเวลาใด ๆ กระทู้ ใช้สำหรับการอ่านโดยไม่ต้องล็อค ConcurrentHashMap วัตถุที่ไม่มีอยู่ใน HashMap เริ่มต้นระดับการทำงานพร้อมกันของ ConcurrentHashMap คือ 16
เธรด unmodifiableMap ปลอดภัยหรือไม่
แผนที่ที่ไม่สามารถแก้ไขได้ (ตัวส่งMod); เช่นเดียวกับการดำเนินการก่อนหน้าที่มีการเติมแผนที่ ดังนั้นรหัสของคุณคือ ปลอดภัยต่อด้าย และวิธีการ getDeliverers ของคุณจะส่งคืนผลลัพธ์ตามเวอร์ชันล่าสุดของแผนที่ของคุณ