- Get Thread Id met
Thread.getId()
in Java - Get Current Thread Pool Id met
Thread.currentThread().getId()
in Java
in deze tutorial zullen we methoden introduceren om thread id in Java te krijgen. We zullen ook zien hoe we de id van de huidige thread kunnen krijgen van een thread pool.
Krijg Thread-Id Met Thread.getId () in Java
In dit voorbeeld hebben we een klasse Task
aangemaakt die de klasse Runnable
implementeert omdat we de run()
methode nodig hebben om de thread uit te voeren. De klasse Task
neemt een threadnaam van de constructor, en de methode run()
drukt deze af op de console wanneer deze wordt uitgevoerd.
in de main()
methode maken we twee Task
objecten in de constructor en vervolgens twee threads objecten waarin we task1
en task2
doorgeven om de taken toe te wijzen.
we zullen de start()
methode gebruiken met thread1
en thread2
om de threads uit te voeren. Eindelijk, als de threads zijn uitgevoerd, kunnen we het id van elke thread krijgen met thread.getId()
, wat de id retourneert als een long
.
Output:
Thread1's ID is: 13Thread2's ID is: 14Executing Task 2Executing Task 1
Krijg De Huidige Thread Pool Id Met Behulp Van Thread.currentThread ().getId () in Java
Thread pools zijn nuttig als het gaat om de zware uitvoering van taken. In het voorbeeld hieronder maken we een thread pool met Executors.newFixedThreadPool(numberOfThreads)
. We kunnen het aantal threads die we in de pool willen opgeven.
de klasse Task
is verantwoordelijk voor het uitvoeren van de thread in de run()
methode. Het is een eenvoudige klasse die sets en krijgt de naam van de draad doorgegeven in de constructor. Om meerdere taken te maken, gebruiken we een lus for
waarin vijf task
objecten worden gemaakt en vijf threads worden uitgevoerd in de pool.
ons doel is om de id te krijgen van elke thread die momenteel wordt uitgevoerd. Om dat te doen, gebruiken we Thread.currentThread().getId()
die het id van de huidige thread retourneert. In de uitvoer kunnen we de ID ‘ s zien van alle threads die de individuele taken uitvoeren.
zodra de taken zijn voltooid, moeten we stoppen met het uitvoeren van de thread pool met threadExecutor.shutdown()
. !threadExecutor.isTerminated()
wordt gebruikt om te wachten tot threadExecutor
is beëindigd.
Output:
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