Java >> Tutoriel Java >  >> Java

Comment créer un thread démon en java ?

Thread démon en Java

Daemon est un thread qui s'exécute en arrière-plan. Garbage Collector est un exemple de thread démon car nous avons vu le ramasse-miettes s'exécuter en arrière-plan.

Le but du thread démon est de fournir un support pour le thread utilisateur.

Par exemple, si le thread utilisateur s'exécute avec peu de mémoire (c'est-à-dire que le thread utilisateur a besoin de plus de mémoire pour s'exécuter), jvm appellera le ramasse-miettes (thread démon) pour détruire les objets inutiles car l'espace mémoire sera libéré et le thread utilisateur pourra être exécuté rapidement.

Habituellement, les threads ayant une priorité élevée auront une chance de s'exécuter en premier, mais les threads démons s'exécutent avec la priorité la plus basse (mais cela ne signifie pas que le thread démon ne peut pas s'exécuter avec la priorité la plus élevée possible si nécessaire).

Il existe peu de méthodes liées à Daemon Thread

  1. booléen public isDaemon()
  2. public void setDaemon(boolean b)

Dans les méthodes ci-dessus décrites comme :

  • La méthode isDaemon() vérifie si le thread est un démon ou non.
  • La méthode setDaemon(boolean b) fait de la nature du démon un non-démon ou un non-démon comme un démon si nécessaire. en passant la valeur dans la méthode true ou false. si nous définissons vrai, le non-démon devient un démon, sinon le démon est un non-démon.
  • setDaemon(boolean b) fonctionne bien avant le démarrage d'un thread, sinon nous aurons une exception d'exécution.

La nature du thread principal n'est pas un démon et nous ne pouvons pas modifier le comportement du thread principal et la nature des autres threads est héritée par le parent ou nous pouvons définir par setDaemon(boolean b).

Exemple :

Dans cet exemple, nous démontrons le comportement de la méthode setDaemon(boolean b)​​

class DaemonThread extends Thread{

	public void run(){
		System.out.println("This thread is a daemon thread" + Thread.currentThread().isDaemon());
	}
}

class NDThread{
	public static void main(String[] args){
		DaemonThread dt = new DaemonThread();
		System.out.println("Behaviour before setDaemon()" + dt.isDaemon());
		dt.setDaemon(true);
		dt.start();
		System.out.println("Behaviour after setDaemon()" + dt.isDaemon());
	}
}

Sortie

D:\Java Articles>java NDThread
Behaviour before setDaemon()false
Behaviour after setDaemon()true
This thread is a daemon threadtrue

En savoir plus...

  1. Expliquer le cycle de vie d'un thread en Java.
  2. Comment créer des threads Java (exemples Java pour créer des threads) ?
  3. Synchronisation des threads en Java avec exemple.
  4. Programme Java pour montrer un exemple de thread.
  5. Programme Java pour rejoindre les discussions.

Balise Java