Sunday, July 12, 2009

Deadlock

Keadaan ini berlaku jika terdapat 2 atau lebih thread yang menggunakan beberapa sumber (resources). Contohnya, katakan terdapat 2 thread, thread A dan thread B dan 2 sumber, sumber C dan sumber D. Jika kedua-dua thread tersebut ingin menggunakan kedua-dua sumber tersebut (take ownership) pada satu-satu masa, maka deadlock akan berlaku apabila setiap thread mempunyai satu sumber dan saling menunggu antara satu sama lain. Thread A mendapat sumber C manakala thread B mendapat sumber D. Kedua-duanya disekat (oleh sistem operasi) sehinggalah mereka mendapat sumber yang satu lagi (thread A mendapat sumber D dan thread B mendapat sumber C).

Kes ini seperti "konsep" di sana menanti di sini menunggu. Kedua-duanya saling menunggu supaya thread lain melepaskan sumber yang dia ingin gunakan.



Rujukan:

LabVIEW advance Programming technique, 2nd Ed., Rick Bitter et. al.

No comments:

Post a Comment