كيف توقف / تقتل Java Thread الذي يعمل لفترة طويلة في وقت التشغيل؟ انتهت المهلة -> ملغاة -> حالات الانقطاع

نشرت: 2021-07-17

كيف تقتل Java Thread الذي يستغرق وقتًا أطول من المتوقع للانتهاء؟ timedout -> ملغى -> حالة متداخلة

هل سبق لك أن تساءلت عن كيفية قتل مؤشر ترابط جافا الذي يعمل لفترة طويلة؟ هل لديك أي من الأسئلة أدناه؟

  • قتل / إيقاف الخيط بعد فترة زمنية معينة
  • قتل موضوع بعد بعض المهلة المحددة في جافا
  • كيف تقتل خيط جافا
  • كيفية إيقاف الخيط في جافا مع مثال
  • كيفية إيقاف الخيط في مثال كود جافا
  • كيفية ايقاف الخيط في جافا بدون استخدام طريقة التوقف

إذا كان لديك أي من الأسئلة الواردة أدناه ، فأنت في المكان الصحيح. سننتقل اليوم إلى مثال بسيط يوضح طرق Java8 لقتل خيط طويل المدى.

ما هو المنطق:

  1. إنشاء فئة CrunchifyJavaTaskTimeout.java
  2. إنشاء منفذ Java Thread بحجم مجموعة مؤشرات ترابط واحدة فقط.
  3. قم بإنشاء 4 مهام مستقبلية لكائن CrunchifyRunner مع مهلة قدرها 3 ثوانٍ
  4. CrunchifyRunner.java هي فئة بسيطة تنفذ طريقة call()
    • يقدم تأخيرًا 20 seconds إذا كان futureTask = 4
  5. بمجرد أن يصل المستقبل إلى 3 seconds ، فإنه ينشئ استثناء مهلة إذا كان الموضوع لا يزال قيد التشغيل
    • بمجرد انتهاء المهلة ، نحتاج إلى إلغاء المهمة باستخدام crunchifyFuture. cancel( true ) ؛
    • بمجرد إلغاء FutureTask ، فإنه سيشغل InterruptedException (يتم إلقاؤه عندما يكون مؤشر الترابط في انتظار أو نائم أو مشغول بطريقة أخرى ، ويتم مقاطعة الخيط ، إما قبل النشاط أو أثناءه. قد ترغب إحدى الطرق أحيانًا في اختبار ما إذا كان قد تمت مقاطعة سلسلة المحادثات الحالية أم لا ، وإذا كان الأمر كذلك ، فقم برمي هذا الاستثناء على الفور.)

هيا بنا نبدأ:

الخطوة 1: قم بإنشاء فئة CrunchifyRunner.java

الخطوة 2: قم بإنشاء فئة CrunchifyJavaTaskTimeout.java

الخطوه 3

انقر بزر الماوس الأيمن على CrunchifyJavaTaskTimeout.java وقم بتشغيله كتطبيق Java.

سترى النتيجة أدناه في وحدة تحكم Eclipse.

كيف تقتل توقف جافا الموضوع في وقت التشغيل

اسمحوا لي أن أعرف إذا كان لديك أي أسئلة حول هذا الموضوع.