الإغلاق التلقائي لـ ExecutorService
استخدم try-with-resources لإيقاف تشغيل المنفّذ تلقائياً.
مقارنة الكود
✕ Java 8
ExecutorService exec =
Executors.newCachedThreadPool();
try {
exec.submit(task);
} finally {
exec.shutdown();
exec.awaitTermination(
1, TimeUnit.MINUTES);
}
✓ Java 19+
try (var exec =
Executors.newCachedThreadPool()) {
exec.submit(task);
}
// auto shutdown + await on close
هل ترى مشكلة في هذا الكود؟ أخبرنا.
لماذا يتفوق الأسلوب الحديث
تنظيف تلقائي
يحدث الإيقاف تلقائياً عند الخروج من الكتلة.
لا تسريبات
يُوقَف المنفّذ دائماً حتى عند حدوث استثناءات.
نمط مألوف
نفس try-with-resources المستخدم مع الملفات والاتصالات.
الأسلوب القديم
إيقاف تشغيل يدوي
الأسلوب الحديث
try-with-resources
منذ JDK
19
الصعوبة
مبتدئ
دعم JDK
الإغلاق التلقائي لـ ExecutorService
متاح
متاح على نطاق واسع منذ JDK 19 (سبتمبر 2022)
كيف يعمل
منذ Java 19، تُنفّذ ExecutorService واجهة AutoCloseable. تستدعي الدالة close() الدالةَ shutdown() وتنتظر اكتمال المهام. لا مزيد من أنماط try/finally اليدوية لإيقاف التشغيل.
توثيق ذو صلة