ما هو خيط الخدمة (daemon thread) في Java وكيف يختلف عن الخيط العادي؟
مرحباً بالجميع! بدأت دراسة تعدد الخيوط في Java ووجدت مفهوم "خيط الخدمة" (daemon thread). قرأت الوثائق لكنني لم أفهم تماماً ما هي خصوصيته.
لدي مثال بسيط: أقوم بتشغيل خيط يطبع رسالة كل ثانية. الخيط الرئيسي (main) ينتهي بعد 3 ثوانٍ. أتوقع أن ينتهي البرنامج، لكنه يستمر في العمل حتى أُوقفه يدوياً.
public class DaemonTest {
public static void main(String[] args) throws InterruptedException {
Thread worker = new Thread(() -> {
while (true) {
System.out.println("أنا أعمل...");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
break;
}
}
});
worker.start();
Thread.sleep(3000);
System.out.println("Main انتهى");
}
}
لماذا لا