كيفية إنشاء Java Deadlock برمجيًا وكيفية تحليل Deadlock

نشرت: 2013-07-03

مثال Java Thread Lock بواسطة Crunchify

Deadlock هو حالة برمجة حيث يتم حظر اثنين أو أكثر من الخيوط إلى الأبد ، وينشأ هذا الموقف مع اثنين على الأقل من الخيوط ومصدرين أو أكثر.

لقد كتبت هنا برنامجًا بسيطًا سيؤدي إلى سيناريو طريق مسدود ، ثم سنرى كيفية تحليله.

فيما يلي مثال بسيط على Java:

انتاج:

أثناء تعليق تطبيقك كما في المثال أعلاه ، يمكنك الحصول على تفريغ سلاسل الرسائل ومشاهدة سلاسل الرسائل التي تم تجميدها.

على سبيل المثال ، في نظام Mac ، يمكنك إما إجراء Ctrl-\ أو ببساطة استخدام jstack ومعرف العملية للحصول على تفريغ مؤشر الترابط مما يجعل الأمر واضحًا للغاية حيث يوجد الجمود.

في هذا المثال ، يبدو تفريغ الخيط كما يلي:

نلاحظ هنا threads => Deadlock هنا .. في المثال التالي سيوفر برنامج Java بسيطًا لإنشاء تفريغ مؤشر الترابط أعلاه برمجيًا.