- Get Thread Id Using
Thread.getId()
in Java - Get Current Thread Pool Id Using
Thread.currentThread().getId()
in Java
w tym samouczku przedstawimy metody pobierania thread id in Java. Zobaczymy również, jak możemy uzyskać identyfikator bieżącego wątku z puli wątków.
Uzyskaj Identyfikator Wątku Za Pomocą Wątku.getId () w Javie
w tym przykładzie stworzyliśmy klasę Task
, która implementuje klasę Runnable
, ponieważ potrzebujemy jej metody run()
do wykonania wątku. Klasa Task
pobiera nazwę wątku od swojego konstruktora, a metoda run()
wypisuje go na konsoli, gdy jest wykonywana.
w metodzie main()
tworzymy dwa obiekty Task
w konstruktorze, a następnie dwa obiekty threads, w których przekazujemy task1
i task2
, aby przypisać zadania.
wywołamy metodę start()
używając thread1
i thread2
do wykonania wątków. W końcu, po wykonaniu wątków, możemy uzyskać identyfikator każdego wątku za pomocą thread.getId()
, co zwraca id jako long
.
:
Thread1's ID is: 13Thread2's ID is: 14Executing Task 2Executing Task 1
Uzyskaj Bieżący Identyfikator Puli Wątków Za Pomocą Wątku.currentThread ().getId () w Javie
pule wątków są korzystne, jeśli chodzi o ciężkie wykonywanie zadań. W poniższym przykładzie tworzymy pulę wątków używając Executors.newFixedThreadPool(numberOfThreads)
. Możemy określić liczbę wątków, które chcemy mieć w Puli.
Klasa Task
jest odpowiedzialna za wykonanie wątku w metodzie run()
. Jest to prosta klasa, która ustawia i pobiera nazwę wątku przekazaną w konstruktorze. Aby utworzyć wiele zadań, używamy pętli for
, w której tworzy się pięć obiektów task
i wykonuje się pięć wątków w Puli.
naszym celem jest uzyskanie identyfikatora każdego wątku, który jest obecnie wykonywany. Aby to zrobić, użyjemy Thread.currentThread().getId()
, która zwraca identyfikator bieżącego wątku. Na wyjściu możemy zobaczyć identyfikatory wszystkich wątków, które wykonują poszczególne zadania.
po zakończeniu zadań powinniśmy przestać wykonywać pulę wątków używając threadExecutor.shutdown()
. !threadExecutor.isTerminated()
służy do oczekiwania na zakończenie threadExecutor
.
:
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