تصحيح خطأ حظر JDK في 30 دقيقة باستخدام Fray: قصة مثيرة في البرمجة المتزامنة
أثناء إضافة اختبارات التكامل لـ Fray، واجه الكاتب حالة حظر في ScheduledThreadPoolExecutor الخاص بـ JDK، ناجمة عن شفرة تبدو غير ضارة. باستخدام ميزة إعادة التشغيل الحتمية وتصور الجدولة في Fray، تم تحديد السبب الرئيسي بسرعة: في حالة إيقاف التشغيل (SHUTDOWN)، يمكن أن يتعطل FutureTask.get إلى أجل غير مسمى. ينبع هذا من التنفيذ المتداخل لأساليب الجدولة (schedule) وإيقاف التشغيل (shutdown)، تاركًا المهام في حالة من الانتظار. وقدمت Fray رؤية واضحة لتداخل الخيوط، مما أتاح إعادة إنتاج وإبلاغ هذا الخطأ في التزامن في JDK.
اقرأ المزيد