- Get Thread Id pomocí
Thread.getId()
v Javě - Get Current Thread Pool Id pomocí
Thread.currentThread().getId()
v Javě
v tomto tutoriálu představíme metody, jak získat thread id v Javě. Uvidíme také, jak můžeme získat id aktuálního vlákna z fondu vláken.
Získejte ID Vlákna Pomocí Vlákna.getId () v Javě
v tomto příkladu jsme vytvořili třídu Task
, která implementuje třídu Runnable
, protože k provedení podprocesu potřebujeme její metodu run()
. Třída Task
vezme název vlákna ze svého konstruktoru a metoda run()
jej při spuštění vytiskne na konzoli.
v metodě main()
vytvoříme dva objekty Task
v konstruktoru a pak dva objekty podprocesů, ve kterých předáme task1
a task2
k přiřazení úkolů.
zavoláme metodu start()
pomocí thread1
a thread2
pro spuštění podprocesů. Konečně, jakmile jsou vlákna spuštěna, můžeme získat id každého vlákna pomocí thread.getId()
, které vrací id jako long
.
Výstup:
Thread1's ID is: 13Thread2's ID is: 14Executing Task 2Executing Task 1
Získejte Aktuální ID Fondu Vláken Pomocí Vlákna.currenthread ().getId () v Javě
vláknové bazény jsou prospěšné, pokud jde o těžké provádění úkolů. V níže uvedeném příkladu vytvoříme fond podprocesů pomocí Executors.newFixedThreadPool(numberOfThreads)
. Můžeme určit počet vláken, které chceme v bazénu.
třída Task
je zodpovědná za provedení podprocesu metodou run()
. Jedná se o jednoduchou třídu, která nastaví a dostane jméno vlákna předané v konstruktoru. Pro vytvoření více úloh používáme smyčku for
, ve které je vytvořeno pět objektů task
a ve fondu je provedeno pět podprocesů.
Naším cílem je získat id každého vlákna, které je aktuálně spuštěno. K tomu použijeme Thread.currentThread().getId()
, který vrací id aktuálního vlákna. Ve výstupu vidíme ID všech podprocesů, které provádějí jednotlivé úkoly.
po dokončení úkolů bychom měli přestat provádět fond podprocesů pomocí threadExecutor.shutdown()
. !threadExecutor.isTerminated()
se používá k čekání na ukončení threadExecutor
.
výstup:
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