Java >> Tutoriel Java >  >> Java

Planificateur de threads et découpage du temps en Java

Planificateur de threads

  • ​Le planificateur de threads est introduit dans Java pour la planification des threads.
  • Lorsque nous avons plusieurs threads, le thread qui aura une chance est décidé par le planificateur de threads.
  • Lorsque plusieurs threads sont en attente, l'ordre dans lequel les threads en attente seront exécutés est déterminé par le planificateur de threads.
  • Le planificateur de threads fait partie de JVM.
  • Planification du planificateur de threads en attente de threads en fonction de certaines priorités, les threads ayant une priorité élevée auront une chance en premier.
  • Nous ne pouvons pas nous attendre à des méthodologies exactes suivies par le planificateur de threads. Cela peut varier de jvm à jvm dépendant. c'est pourquoi nous ne sommes pas en mesure de déterminer la sortie exacte dans les concepts de multithreading.
  • Lorsque plusieurs threads sont en attente, l'ordre dans lequel les threads en attente seront exécutés est déterminé par le planificateur de threads.

Exemple :

Démontrez le comportement de Thread Scheduler. Nous ne pouvons pas nous attendre à une exécution exacte lorsque nous avons plusieurs threads, comme nous l'avons vu dans l'exemple ci-dessous :

class FirstThread extends Thread{
	public void run(){
		for(int i=0;i<10;++i){
			System.out.println("I am in first thread");
			try{
				Thread.sleep(1000);
			}
			catch(InterruptedException ie){
				System.out.println("Exception occurs ");
			}
		}
	}
}

class SecondThread1{
	public static void main(String[] args){
		FirstThread ft = new FirstThread();
		ft.start();
		for(int j=1;j<10;++j){
			System.out.println("I am in second thread");
		}
	}
}

Sortie

D:\Java Articles>java SecondThread1
I am in second thread
I am in first thread
I am in second thread
I am in second thread
I am in second thread
I am in second thread
I am in second thread
I am in second thread
I am in second thread
I am in second thread
I am in first thread
I am in first thread
I am in first thread
I am in first thread
I am in first thread
I am in first thread
I am in first thread
I am in first thread
I am in first thread

Découpage du temps

  • La tranche horaire est introduite dans le système d'exploitation pour les processus de planification.
  • Avec l'aide du facteur de tranche de temps, le processus d'exécution de courte durée aura une chance de s'exécuter.
  • Une tâche s'exécute pendant une tranche de temps prédéfinie, puis réintègre le pool de tâches prêtes.

Exemple :

Supposons que nous ayons deux processus et qu'un processus prenne 1 heure et que le deuxième processus prenne 15 minutes. Et le premier processus ayant une priorité élevée, puis le planificateur de threads donne une chance de s'exécuter en premier. Si nous attribuons un facteur de tranche de temps de 3 minutes. Ensuite, le premier processus s'exécutera pendant 3 minutes, puis entrera en état d'attente, puis après 3 minutes, le deuxième processus aura la possibilité de s'exécuter pendant 3 minutes, puis de revenir à l'état d'attente et de nouveau d'abord traiter 3 min. Et revenez à l'état d'attente et ainsi de suite jusqu'à la fin.

Le but du facteur de découpage du temps n'est qu'un (c'est-à-dire donner une chance d'exécuter un processus d'attente de courte durée et prendre un processeur pendant un certain temps à partir de processus d'exécution de longue durée).

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