Mutex
Mutex คืออะไร
Mutex ย่อมาจาก "Mutual Exclusion" เป็นพื้นฐานการซิงโครไนซ์ที่ใช้เพื่อให้แน่ใจว่ามีเพียงหนึ่งเธรดในแต่ละครั้งเท่านั้นที่สามารถเข้าถึงทรัพยากรที่ใช้ร่วมกันได้
การใช้งานทั่วไปสำหรับ mutexes คือการปกป้องส่วนที่สำคัญของโค้ด ซึ่งเป็นส่วนของโค้ดที่เข้าถึงโครงสร้างข้อมูลที่ใช้ร่วมกันหรือทรัพยากรอื่นๆ ตัวอย่างเช่น เราอาจใช้ mutex เพื่อป้องกันการเข้าถึงตัวแปรที่ใช้ร่วมกันในโปรแกรมแบบมัลติเธรด โดยใช้ล็อก mutex ก่อนเข้าถึงตัวแปรที่ใช้ร่วมกัน และปลดล็อกหลังจากดำเนินการเสร็จสิ้น เราจะมั่นใจได้ว่ามีเธรดเดียวเท่านั้นที่เข้าถึงตัวแปรได้ในแต่ละครั้ง
ตัวอย่างที่ 1
ป้องกันการเข้าถึงตัวแปรที่ใช้ร่วมกันในโปรแกรม
Output
ตัวอย่างที่ 2
ตัวอย่างที่ 3
ตัวอย่างของเธรด 3 ตัวที่พยายามเข้าไปใช้ list เดียวกัน myList:
Output
0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,0,91,10,20,94,30,96,40,97,50,98,60,99,70,80,90,
Ref:
Last updated