Streams متوسط

استخدم منفّذات الخيوط الافتراضية للتزامن الخفيف غير المحدود.

✕ Java 8
ExecutorService exec =
    Executors.newFixedThreadPool(10);
try {
    futures = tasks.stream()
        .map(t -> exec.submit(t))
        .toList();
} finally {
    exec.shutdown();
}
✓ Java 21+
try (var exec = Executors
        .newVirtualThreadPerTaskExecutor()) {
    var futures = tasks.stream()
        .map(exec::submit)
        .toList();
}
هل ترى مشكلة في هذا الكود؟ أخبرنا.
♾️

لا حجم

لا حجم مجمع لضبطه — أنشئ خيوطاً بقدر الحاجة.

خفيف الوزن

الخيوط الافتراضية تستخدم كيلوبايتات لا ميغابايتات.

🧹

قابل للإغلاق التلقائي

try-with-resources يتعامل مع الإيقاف تلقائياً.

الأسلوب القديم
مجمع خيوط ثابت
الأسلوب الحديث
منفّذ الخيوط الافتراضية
منذ JDK
21
الصعوبة
متوسط
منفّذ الخيوط الافتراضية
متاح

متاح على نطاق واسع منذ JDK 21 LTS (سبتمبر 2023)

ينشئ منفّذ الخيوط الافتراضية خيطاً افتراضياً جديداً لكل مهمة. لا حاجة لضبط حجم المجمع — الخيوط الافتراضية رخيصة بما يكفي لإنشاء الملايين منها.

مشاركة 𝕏 🦋 in