สารบัญ:
คำจำกัดความ - การซิงโครไนซ์เธรดหมายความว่าอย่างไร
การซิงโครไนซ์เธรดเป็นการดำเนินการพร้อมกันของเธรดอย่างน้อยสองเธรดที่ใช้ทรัพยากรที่สำคัญร่วมกัน เธรดควรถูกซิงโครไนซ์เพื่อหลีกเลี่ยงความขัดแย้งในการใช้ทรัพยากรที่สำคัญ มิฉะนั้นความขัดแย้งอาจเกิดขึ้นเมื่อเธรดที่รันขนานกันพยายามแก้ไขตัวแปรทั่วไปในเวลาเดียวกัน
Techopedia อธิบายการซิงโครไนซ์เธรด
เมื่อต้องการชี้แจงการซิงโครไนซ์เธรดให้พิจารณาตัวอย่างต่อไปนี้: สามเธรด - A, B และ C - ถูกดำเนินการพร้อมกันและจำเป็นต้องเข้าถึงทรัพยากรที่สำคัญ Z เพื่อหลีกเลี่ยงความขัดแย้งเมื่อเข้าถึง Z, เธรด A, B และ C . ดังนั้นเมื่อ A เข้าถึง Z และ B ก็พยายามเข้าถึง Z การเข้าถึง Z ของ B นั้นจะต้องหลีกเลี่ยงด้วยมาตรการรักษาความปลอดภัยจนกว่า A จะเสร็จสิ้นการทำงานและออกมาจาก Z
ใน Java มีการใช้กลยุทธ์การซิงโครไนซ์สองวิธีเพื่อป้องกันการรบกวนเธรดและข้อผิดพลาดที่สอดคล้องกันของหน่วยความจำ:
- วิธีการซิงโครไนซ์: รวมคำหลักที่ซิงโครไนซ์ไว้ในการประกาศ เมื่อเธรดเรียกใช้วิธีการซิงโครไนส์วิธีการซิงโครไนซ์จะได้รับการล็อคภายในสำหรับวัตถุของวิธีการนั้นโดยอัตโนมัติและเผยแพร่เมื่อเมธอดส่งคืนแม้ว่าการส่งคืนนั้นเกิดจากข้อยกเว้นที่ไม่ได้ตรวจสอบ
- คำสั่งที่ซิงโครไนซ์: ประกาศบล็อกของโค้ดที่จะซิงโครไนซ์ ซึ่งแตกต่างจากวิธีการทำข้อมูลให้ตรงกันงบงบควรจะระบุวัตถุที่ให้ล็อคที่แท้จริง ข้อความเหล่านี้มีประโยชน์สำหรับการปรับปรุงการทำงานพร้อมกันด้วยการซิงโครไนซ์แบบละเอียดเนื่องจากจะสามารถหลีกเลี่ยงการบล็อกที่ไม่จำเป็น




