- Obtenir l’Id de Thread En utilisant
Thread.getId()
en Java - Obtenir l’Id de pool de Threads actuel En utilisant
Thread.currentThread().getId()
en Java
Dans ce tutoriel, nous présenterons des méthodes pour obtenir l’ID de thread en Java. Nous verrons également comment obtenir l’ID du thread actuel à partir d’un pool de threads.
Obtenez L’Id De Thread À L’Aide Du Thread.getId() en Java
Dans cet exemple, nous avons créé une classe Task
qui implémente la classe Runnable
car nous avons besoin de sa méthode run()
pour exécuter le thread. La classe Task
prend un nom de thread de son constructeur et la méthode run()
l’imprime sur la console lorsqu’elle est exécutée.
Dans la méthode main()
, nous créons deux objets Task
dans le constructeur, puis deux objets threads dans lesquels nous passons task1
et task2
pour assigner les tâches.
Nous appellerons la méthode start()
en utilisant thread1
et thread2
pour exécuter les threads. Enfin, une fois les threads exécutés, nous pouvons obtenir l’ID de chaque thread en utilisant thread.getId()
, qui renvoie l’id sous la forme long
.
Sortie:
Thread1's ID is: 13Thread2's ID is: 14Executing Task 2Executing Task 1
Obtenez L’Id De Pool De Threads Actuel À L’Aide Du Thread.currentThread().getId() en Java
Les pools de threads sont bénéfiques pour l’exécution lourde des tâches. Dans l’exemple ci-dessous, nous créons un pool de threads en utilisant Executors.newFixedThreadPool(numberOfThreads)
. Nous pouvons spécifier le nombre de threads que nous voulons dans le pool.
La classe Task
est responsable de l’exécution du thread dans la méthode run()
. C’est une classe simple qui définit et obtient le nom du thread transmis dans le constructeur. Pour créer plusieurs tâches, nous utilisons une boucle for
dans laquelle cinq objets task
sont créés et cinq threads sont exécutés dans le pool.
Notre objectif est d’obtenir l’ID de chaque thread en cours d’exécution. Pour ce faire, nous utiliserons Thread.currentThread().getId()
qui renvoie l’id du thread actuel. Dans la sortie, nous pouvons voir les ID de tous les threads qui exécutent les tâches individuelles.
Une fois les tâches terminées, nous devons arrêter d’exécuter le pool de threads en utilisant threadExecutor.shutdown()
. !threadExecutor.isTerminated()
est utilisé pour attendre que le threadExecutor
soit terminé.
Sortie:
Created Task: Task 0Created Task: Task 1Created Task: Task 2Created Task: Task 3Created Task: Task 4Executing: Task 0Executing: Task 2Executing: Task 1Executing: Task 4Executing: Task 3Task 0 is on thread id #13Task 1 is on thread id #14Task 4 is on thread id #17Task 2 is on thread id #15Task 3 is on thread id #16All threads have completed their tasks