Keadaan ini berlaku apabila thread berlainan keutamaan (priority) memerlukan sumber. Jika thread yang berkeutamaan lebih rendah memperolehi sumber terlebih dahulu, proses yang berkeutamaan lebih tinggi "dikunci" daripada mengunakan sumber sehinggalah ia dilepaskan. Oleh yang demikain, proses berkeutamaan lebih tinggi, keutamaannya dikurangkan kerana terpasksa menunggu proses yang berkeutamaan lebih rendah selesai. Sekatan jenis ini dirujuk sebagai "Priority inversion".
Contoh sumber:
1. Dalaman: - pembolehubah (variables)
2. Luaran: - komponen .NET
Showing posts with label Mutithreading. Show all posts
Showing posts with label Mutithreading. Show all posts
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.
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.
Subscribe to:
Posts (Atom)