Skip to main content

mutex คืออะไร?

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

กระบวนการเปิดใช้งานและการสร้าง Mutex เกิดขึ้นเมื่อเปิดแอปพลิเคชันโปรแกรมคอมพิวเตอร์โดยพื้นฐานแล้วโปรแกรมจะสร้าง mutex และเชื่อมโยงกับทรัพยากรเฉพาะที่จำเป็นสำหรับฟังก์ชั่นที่มีประสิทธิภาพของโปรแกรมเปิดเมื่อมีการเรียกทรัพยากรออกระบบปฏิบัติการจะกำหนดชื่อเฉพาะให้กับ Mutex และใช้เพื่อระบุกระบวนการตราบเท่าที่โปรแกรมยังคงเปิดอยู่

เมื่อเปิดใช้งาน Mutex และตั้งชื่อสำหรับเซสชันเธรดอื่น ๆ ของโปรแกรมที่ต้องการทรัพยากรนี้สามารถเข้าถึงได้แม้ว่าทรัพยากรจะใช้งานอยู่แล้วโดยเธรดอื่นโดยการระบุความต้องการทรัพยากรฟังก์ชัน Mutex จะเริ่มสลับการเข้าถึงทรัพยากรไปมาระหว่างเธรดสำหรับผู้ใช้ขั้นตอนนี้กระบวนการนี้มีความโปร่งใสสำหรับความตั้งใจและวัตถุประสงค์ในทางปฏิบัติทั้งหมดปรากฏว่าผู้ใช้สองคนหรือสองเธรดกำลังทำให้เรามีทรัพยากรเดียวกันพร้อมกัน

ในขณะที่ความเร็วของการถ่ายโอนการเข้าถึงนั้นรวดเร็วจนไม่สามารถสังเกตเห็นได้ว่าผู้ใช้ปลายทางควรสังเกตว่าเมื่อใดก็ตามที่มีการใช้ทรัพยากรมันจะถูกล็อคอย่างมีประสิทธิภาพไปยังเธรดหนึ่งในลำดับเธรดอื่นที่ต้องการการใช้ทรัพยากรจะออกคำขอที่จะเข้าสู่คิวและยังคงอยู่ที่นั่นจนกว่าเธรดแรกจะเสร็จสิ้นด้วยการใช้งานที่ใช้งานอยู่ณ จุดนั้นทรัพยากรจะถูกปลดล็อคและฟังก์ชั่น mutex อนุญาตให้เธรดถัดไปในการเข้าถึงคิวที่ใช้งานอยู่หากเธรดที่สามทำงานอยู่และต้องการทรัพยากร Mutex จะจัดเรียงเธรดนี้เข้ากับคิวและให้สิทธิ์การเข้าถึงบนพื้นฐานการหมุน