"Voici un sujet nouveau et intéressant."

"Il s'avère que vous pouvez démarrer des discussions dans différents modes."

"Un programme standard (avec un seul thread) s'arrête lorsque le thread principal termine son travail. Le thread principal termine son exécution, le programme se termine et la JVM libère sa mémoire."

"Si nous lançons un thread enfant, le programme continue de s'exécuter, même si le thread principal se termine. La JVM ne se termine pas tant qu'il y a au moins un thread en cours d'exécution. Une fois que tous les threads en cours d'exécution sont terminés, le programme se ferme."

"Eh bien, les gros programmes ont souvent ce qu'on appelle des 'threads de service' dont le travail consiste à entretenir d'autres parties du programme. Par eux-mêmes, ils ne sont pas nécessaires. journalisation, divers rapports sur l'état actuel du programme, etc.

"Ces threads de service sont nécessaires lorsque le programme est en cours d'exécution, mais ils ne sont pas nécessaires seuls."

"Oui, je comprends cela."

"Java vous permet d'exécuter un thread en tant que démon . Ces threads fonctionnent de la même manière que les autres, mais si tous les threads non démons d'un programme se sont terminés et qu'il ne reste que des threads démons, la JVM fermera le programme."

"Ainsi, déclarer un thread 'service' signifie simplement qu'il n'est pas pris en compte lorsque le programme est terminé. C'est tout?"

"Euhhhh... Eh bien, tu as bien sûr dit ça court et gentil. Essentiellement, c'est ce que je voulais te dire."

"La brièveté est un talent. Et les robots talentueux sont talentueux en tout."

"Des questions?"

« Comment démarrez-vous un thread en tant que démon ? Héritez d'une classe DaemonThread ? »

"Non, c'est beaucoup plus simple que ça. La classe Thread a une méthode setDaemon(boolean). Il suffit de passer true et c'est tout. Il suffit de l'appeler avant d'appeler la méthode start(), avant que le vrai thread ne soit créé. Vous ne pouvez pas modifier le type d'un thread une fois qu'il a commencé à s'exécuter."

Exemple:
Thread thread = new LoggerThread();
thread.setDaemon(true);
thread.start();

"Et c'est tout?"

"Oui."

"Je veux attirer votre attention une fois de plus sur le processus de création et de démarrage d'un fil."

"La création d'un objet Thread ne crée pas de thread. Un objet Thread n'est pas un thread. La JVM crée un thread lorsque la méthode start() est appelée. Un Thread est un objet JVM spécial qui vous permet d'accéder aux informations sur un thread et donne vous un peu de contrôle sur elle.

"Je vois. Merci, Ellie."