Get Thread Id in Java

  1. Get Thread Id Using Thread.getId() in Java
  2. Get Current Thread Pool Id Using Thread.currentThread().getId() in Java

In questo tutorial, introdurremo metodi per ottenere thread id in Java. Vedremo anche come possiamo ottenere l’ID del thread corrente da un pool di thread.

Ottieni l’ID del thread usando il thread.getId () in Java

In questo esempio, abbiamo creato una classe Task che implementa la classe Runnable perché abbiamo bisogno del suo metodo run() per eseguire il thread. La classe Task prende un nome di thread dal suo costruttore e il metodo run() lo stampa sulla console quando viene eseguito.

Nel metodo main(), creiamo due oggetti Task nel costruttore e quindi due oggetti thread in cui passiamo task1 e task2 per assegnare le attività.

Chiameremo il metodo start() usando thread1 e thread2 per eseguire i thread. Infine, una volta eseguiti i thread, possiamo ottenere l’ID di ogni thread usando thread.getId(), che restituisce l’id come long.

Uscita:

Thread1's ID is: 13Thread2's ID is: 14Executing Task 2Executing Task 1

Ottieni l’ID del pool di thread corrente usando il thread.currentThread ().getId () in Java

I pool di thread sono utili quando si tratta dell’esecuzione pesante delle attività. Nell’esempio seguente, creiamo un pool di thread usando Executors.newFixedThreadPool(numberOfThreads). Possiamo specificare il numero di thread che vogliamo nel pool.

La classe Task è responsabile dell’esecuzione del thread nel metodo run(). È una classe semplice che imposta e ottiene il nome del thread passato nel costruttore. Per creare più attività, usiamo un ciclo for in cui vengono creati cinque oggetti task e cinque thread vengono eseguiti nel pool.

Il nostro obiettivo è ottenere l’id di ogni thread che viene eseguito attualmente. Per fare ciò, useremo Thread.currentThread().getId() che restituisce l’ID del thread corrente. Nell’output, possiamo vedere gli ID di tutti i thread che eseguono le singole attività.

Una volta completate le attività, dovremmo interrompere l’esecuzione del pool di thread utilizzando threadExecutor.shutdown(). !threadExecutor.isTerminated() viene utilizzato per attendere che threadExecutor sia stato terminato.

Uscita:

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

Articolo correlato-Java Thread

  • Uccidi thread in Java
  • Lascia un commento

    Il tuo indirizzo email non sarà pubblicato.