Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C#

Deadlock และ Starvation ใน C#

Deadlock เกิดเมื่อเธรดล็อก Resource และอีกเธรดต้องการ Resource เดียวกันในเวลาเดียวกัน พบบ่อยในระบบ Multi-processing

ตัวอย่าง 2 เธรด:

Thread OneThread Two
Takes Lock PTakes Lock Q
Requests Lock QRequests Lock P

Thread One รอ Lock Q ที่ Thread Two ถือครอง และในทางกลับกัน เกิด Deadlock

อาจเป็น 3-way, 4-way deadlock ได้หากมีเธรดและล็อกมากกว่า 2

Starvation คือการบล็อกถาวรของเธรดหนึ่งหรือหลายตัวในแอปพลิเคชัน Multi-threaded