- Hent tråd-Id ved hjælp af
Thread.getId()
i Java - Få nuværende Trådpulje-Id ved hjælp af
Thread.currentThread().getId()
i Java
i denne vejledning introducerer vi metoder til at få tråd-id i Java. Vi vil også se, hvordan vi kan få den aktuelle tråds id fra en trådpulje.
Få Tråd-Id Ved Hjælp Af Tråd.getId () i Java
i dette eksempel har vi oprettet en klasse Task
, der implementerer klassen Runnable
, fordi vi har brug for dens run()
metode til at udføre tråden. Klassen Task
tager et trådnavn fra sin konstruktør, og metoden run()
udskriver den på konsollen, når den udføres.
i metoden main()
opretter vi to Task
objekter i konstruktøren og derefter to tråde objekter, hvor vi passerer task1
og task2
for at tildele opgaverne.
vi kalder start()
metoden ved hjælp af thread1
og thread2
for at udføre trådene. Endelig, når trådene er udført, kan vi få hver tråds id ved hjælp af thread.getId()
, som returnerer id ‘ et som en long
.
Udgang:
Thread1's ID is: 13Thread2's ID is: 14Executing Task 2Executing Task 1
Få Nuværende Tråd Pool Id Ved Hjælp Af Tråd.currentThread ().getId () i Java
Trådpuljer er gavnlige, når det kommer til den tunge udførelse af opgaver. I eksemplet nedenfor opretter vi en trådpulje ved hjælp af Executors.newFixedThreadPool(numberOfThreads)
. Vi kan angive antallet af tråde, vi ønsker i puljen.
Task
– klassen er ansvarlig for at udføre tråden i run()
– metoden. Det er en simpel klasse, der sætter og får trådens navn bestået i konstruktøren. For at oprette flere opgaver bruger vi en for
loop, hvor fem task
objekter oprettes, og fem tråde udføres i puljen.
vores mål er at få id for hver tråd, der udføres i øjeblikket. For at gøre det bruger vi Thread.currentThread().getId()
, der returnerer den aktuelle tråds id. I output kan vi se ID ‘ erne for alle de tråde, der udfører de enkelte opgaver.
når opgaverne er afsluttet, skal vi stoppe med at udføre trådpuljen ved hjælp af threadExecutor.shutdown()
. !threadExecutor.isTerminated()
bruges til at vente, indtil threadExecutor
er afsluttet.
udgang:
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