En Java, les threads sont divisés en deux types: threads utilisateur et threads de démon (service). SetDaemon (false) sur le thread utilisateur; setDaemon (true) au fil de démon; Si ce n'est pas défini, c'est le thread utilisateur.
Pour mettre fin à un seul thread, utilisez la méthode Thread.interrupt () et pour terminer un multi-thread, vous devez définir un thread de démon. Lorsqu'aucun thread utilisateur n'existe, tous les threads de démon se termineront (il peut être compris comme: le thread de démon est le thread de service, le thread utilisateur est le thread de service, le thread utilisateur (le thread de service) a disparu et le thread de service se terminera automatiquement sans signification d'existence)
exemple:
Class Stopthread implémente Runnable {public void run () {// Constructeur, tandis que (true) est exécuté par défaut lors de l'instanciation {// une boucle vraie permanente est utilisée pour détecter si le thread démon mettra automatiquement fin System.out.println (thread.currentThread (). GetName () + "... {StehThread st = new StophThread (); thread t1 = nouveau thread (st); // créer un nouveau thread thread t2 = nouveau thread (st); t1.setdaemon (true); // définir comme un thread de démon (service). Lorsque le thread utilisateur est entièrement accroché, tous les threads de démon accrocheront également t2.SetDaemon (true); t1.start (); // thread démarre t2.start (); int num = 0; while (true) {if (num ++ == 10) {Break;} System.out.println (Thread.currentThread (). GetName () + "......" + num);} System.out.println ("Over");}}Lorsque la dernière phrase System.out.println ("Over") est exécutée, le thread utilisateur (programme principal) se termine; Les deux threads de démon qui diffusent en continu les informations dans la boucle permanente du backend se termineront également automatiquement.
Une autre question courante est introduite: est-ce vrai si tous les fils non aléamatiques de Java End, tous les fils de démon quittent automatiquement?
Réponse de référence:
La seule fonction d'un thread de démon est de fournir des services à d'autres threads. Lorsque seuls les fils de démon sont laissés, la machine virtuelle sort »(de: Java Core Technology). Maintenant, il n'y a pas de non-défense, il n'y a donc pas besoin de démon pour fournir des services.
Résumer
Ce qui précède est l'intégralité du contenu de cet article sur les instances de thread de démon dans la terminaison multithread en langue java. J'espère que ce sera utile à tout le monde. Les amis intéressés peuvent continuer à se référer à d'autres sujets connexes sur ce site. S'il y a des lacunes, veuillez laisser un message pour le signaler. Merci vos amis pour votre soutien pour ce site!