- Obter Id de Thread Usando
Thread.getId()
Java - Obter Atual Pool de Thread Id Usando
Thread.currentThread().getId()
Java
neste tutorial, vamos apresentar métodos para obter a id da thread em Java. Também veremos como podemos obter o ID do thread atual de um pool de threads.
Obter ID De Thread Usando Thread.getId () em Java
neste exemplo, criamos uma classe Task
que implementa a classe Runnable
porque precisamos de seu método run()
para executar o thread. A classe Task
pega um nome de thread de seu construtor e o método run()
o imprime no console quando é executado.
no método main()
, criamos dois objetos Task
no construtor e, em seguida, dois objetos threads nos quais passamos task1
e task2
para atribuir as tarefas.
chamaremos o método start()
usando thread1
e thread2
para executar os threads. Finalmente, uma vez que os threads foram executados, podemos obter o ID de cada thread usando thread.getId()
, que retorna o id como long
.
Saída:
Thread1's ID is: 13Thread2's ID is: 14Executing Task 2Executing Task 1
Obtenha O ID Atual Do Pool De Threads Usando O Thread.currentThread ().getId () em Java
os pools de threads são benéficos quando se trata da execução pesada de Tarefas. No exemplo abaixo, criamos um pool de threads usando Executors.newFixedThreadPool(numberOfThreads)
. Podemos especificar o número de threads que queremos no pool.
a classe Task
é responsável por executar o thread no método run()
. É uma classe simples que define e obtém o nome do thread passado no construtor. Para criar várias tarefas, usamos um loop for
no qual cinco objetos task
são criados e cinco threads são executados no pool.
nosso objetivo é obter o id de cada thread que está sendo executado atualmente. Para fazer isso, usaremos Thread.currentThread().getId()
que retorna o ID do thread atual. Na saída, podemos ver os ids de todos os threads que executam as tarefas individuais.
uma vez que as tarefas são concluídas, devemos parar de executar o pool de threads usando threadExecutor.shutdown()
. !threadExecutor.isTerminated()
é usado para esperar até que o threadExecutor
tenha sido encerrado.
Saída:
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