- hämta tråd-Id med
Thread.getId()
i Java - hämta nuvarande Trådpool-Id med
Thread.currentThread().getId()
i Java
i denna handledning kommer vi att introducera metoder för att få tråd-id i Java. Vi kommer också att se hur vi kan få den aktuella trådens id från en trådpool.
Hämta Tråd-Id Med Tråd.getId () i Java
i det här exemplet har vi skapat en klass Task
som implementerar klassen Runnable
eftersom vi behöver dess run()
– metod för att köra tråden. Klassen Task
tar ett trådnamn från sin konstruktör, och metoden run()
skriver ut den på konsolen när den körs.
i metoden main()
skapar vi två Task
objekt i konstruktören och sedan två trådar objekt där vi passerar task1
och task2
för att tilldela uppgifterna.
vi kommer att ringa start()
– metoden med thread1
och thread2
för att utföra trådarna. Äntligen, när trådarna har körts, kan vi få varje tråds id med thread.getId()
, som returnerar id som en long
.
Utgång:
Thread1's ID is: 13Thread2's ID is: 14Executing Task 2Executing Task 1
Få Nuvarande Trådpool-Id Med Tråd.currenthread ().Getid() i Java
Trådpooler är fördelaktiga när det gäller tungt utförande av uppgifter. I exemplet nedan skapar vi en trådpool med Executors.newFixedThreadPool(numberOfThreads)
. Vi kan ange antalet trådar vi vill ha i poolen.
klassen Task
ansvarar för att köra tråden i metoden run()
. Det är en enkel klass som sätter och får trådens namn passerat i konstruktören. För att skapa flera uppgifter använder vi en for
– slinga där fem task
– objekt skapas och fem trådar körs i poolen.
vårt mål är att få id för varje tråd som körs för närvarande. För att göra det använder vi Thread.currentThread().getId()
som returnerar den aktuella trådens id. I utgången kan vi se ID: n för alla trådar som utför de enskilda uppgifterna.
när uppgifterna är klara bör vi sluta köra trådpoolen med threadExecutor.shutdown()
. !threadExecutor.isTerminated()
används för att vänta tills threadExecutor
har avslutats.
utgång:
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