hämta tråd-Id i Java

  1. hämta tråd-Id med Thread.getId() i Java
  2. 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

relaterad artikel-Java-tråd

  • döda tråd i Java
  • Lämna ett svar

    Din e-postadress kommer inte publiceras.