การชะงักงันเกิดขึ้นเมื่อทรัพยากรถูกล็อคโดยเธรดและต้องการโดยเธรดอื่นในเวลาเดียวกัน ปัญหานี้เกิดขึ้นบ่อยครั้งในระบบมัลติโปรเซสเซอร์
อาจเกิดขึ้นได้เมื่อเธรดตั้งแต่สองเธรดขึ้นไปรอทรัพยากรที่อยู่ในเธรดอื่น นี่คือตัวอย่าง −
เธรดที่หนึ่ง | กระทู้ที่สอง |
---|---|
ล็อค P | ล็อค Q |
ขอล็อก Q | ขอล็อก P |
เธรดที่หนึ่งจะไม่ได้รับ Lock Q เนื่องจากเป็นเธรดที่สอง ในทำนองเดียวกัน Thread Two จะไม่ได้รับ Lock P เนื่องจากเจ้าของเดิมคือ Thread One
การชะงักงันอาจเป็นการชะงักงันสามทางที่เกิดขึ้นได้หากสามเธรดและสามการล็อคเป็นเรื่องปกติ ในทำนองเดียวกัน มันสามารถเกิดขึ้นได้สำหรับสี่ทาง ห้าทาง และทางตันอื่นๆ
ความอดอยากเป็นการบล็อกถาวรของเธรดที่รันได้ตั้งแต่หนึ่งเธรดขึ้นไปในแอปพลิเคชันแบบมัลติเธรด