หากโค้ดของคุณทำงานในสภาพแวดล้อมแบบมัลติเธรด คุณต้องซิงโครไนซ์สำหรับอ็อบเจ็กต์ ซึ่งใช้ร่วมกันระหว่างหลายเธรด เพื่อหลีกเลี่ยงความเสียหายต่อสถานะหรือประเภทใดๆ พฤติกรรมที่ไม่คาดคิด การซิงโครไนซ์ใน Java จำเป็นเฉพาะเมื่ออ็อบเจ็กต์ที่แชร์ไม่สามารถเปลี่ยนแปลงได้
ทำไมเราจึงต้องซิงโครไนซ์ในแบบมัลติเธรด
จุดประสงค์หลักของการซิงโครไนซ์คือ เพื่อหลีกเลี่ยงการรบกวนของเธรด ในบางครั้งที่เธรดพยายามเข้าถึงทรัพยากรที่ใช้ร่วมกันมากกว่าหนึ่งเธรด เราจำเป็นต้องตรวจสอบให้แน่ใจว่าทรัพยากรจะถูกใช้โดยเธรดเดียวเท่านั้นในแต่ละครั้ง กระบวนการนี้เรียกว่าการซิงโครไนซ์
เหตุใดจึงต้องมีการซิงโครไนซ์
การซิงโครไนซ์เป็นสิ่งสำคัญเพราะ จะตรวจสอบความแตกต่างระหว่างสองคอนเทนเนอร์ข้อมูล เพื่อหลีกเลี่ยงการถ่ายโอนข้อมูลที่ไม่จำเป็นซึ่งมีอยู่แล้วในแหล่งข้อมูลทั้งสองแห่ง ดังนั้น โดยทั่วไปรูปแบบการซิงโครไนซ์จะอัปเดตแหล่งข้อมูลทั้งสองโดยการโอนเฉพาะการเพิ่มเติม การเปลี่ยนแปลง และการลบ
ทำไมเราต้องซิงโครไนซ์กับ Java
การซิงโครไนซ์ใน java คือความสามารถในการควบคุมการเข้าถึงหลายเธรดไปยังทรัพยากรที่ใช้ร่วมกัน ในแนวคิด Multithreading หลายเธรดพยายามเข้าถึงทรัพยากรที่ใช้ร่วมกันในแต่ละครั้งเพื่อสร้างผลลัพธ์ที่ไม่สอดคล้องกัน การซิงโครไนซ์คือ จำเป็นสำหรับการสื่อสารที่เชื่อถือได้ระหว่างกระทู้.
การซิงโครไนซ์ในมัลติเธรดหมายความว่าอย่างไร
ซิงโครไนซ์หมายความว่าในสภาพแวดล้อมแบบมัลติเธรด ออบเจ็กต์ที่มีเมธอด/บล็อกที่ซิงโครไนซ์จะไม่อนุญาตให้สองเธรดเข้าถึงเมธอด/บล็อกของโค้ดที่ซิงโครไนซ์เหมือนกัน เวลา. ซึ่งหมายความว่า หนึ่งชุดข้อความไม่สามารถอ่านได้ในขณะที่อีกชุดข้อความอัปเดต.