Java Thread enumerate() Method



Description

The Java Thread enumerate() method copies into the specified array every active thread in the current thread's thread group and its subgroups. It calls the enumerate method of the current thread's thread group with the tarray argument.

Declaration

Following is the declaration for java.lang.Thread.enumerate() method

public static int enumerate(Thread[] tarray)

Parameters

tarray − This is an an array of Thread objects to copy to.

Return Value

This method returns the number of threads put into the array

Exception

SecurityException − if a security manager exists and its checkAccess method doesn't allow the operation.

Example: Creating array of Threads in Single Threaded Environment

The following example shows the usage of Java Thread enumerate() method. In this program, we've created a class ThreadDemo. In main method, current thread is retrieved using currentThread() method and it is printed. Using activeCount(), the count of active thread is retrieved and printed. As next, we've created an array of active threads using enumerate() method and iterated them to print on console.

package com.tutorialspoint;

public class ThreadDemo {

   public static void main(String[] args) {

      Thread t = Thread.currentThread();
      t.setName("Admin Thread");
     
      // prints the current thread
      System.out.println("Thread = " + t);

      int count = Thread.activeCount();
      System.out.println("currently active threads = " + count);
    
      Thread th[] = new Thread[count];
      // returns the number of threads put into the array 
      Thread.enumerate(th);

      // prints active threads
      for (int i = 0; i < count; i++) {
         System.out.println(i + ": " + th[i]);
      }
   }
} 

Output

Let us compile and run the above program, this will produce the following result −

Thread = Thread[Admin Thread,5,main]
currently active threads = 1
0: Thread[Admin Thread,5,main]

Example: Getting Array of Threads in Multi-Threaded Program

The following example shows the usage of Java Thread activeCount() method. In this program, we've created a thread class ThreadDemo by implementing Runnable interface. In constructor, current thread is retrieved using currentThread() method and a new thread is created using new Thread. Using activeCount(), the count of active thread is retrieved and printed.

package com.tutorialspoint;

public class ThreadDemo implements Runnable {

   ThreadDemo() {
      // main thread
      Thread currThread = Thread.currentThread();
      
      // thread created
      Thread t = new Thread(this, "Admin Thread");
      
      // this will call run() function
      t.start();
      int count = Thread.activeCount();
      System.out.println("currently active threads = " + count);
	  Thread th[] = new Thread[count];
      // returns the number of threads put into the array 
      Thread.enumerate(th);

      // prints active threads
      for (int i = 0; i < count; i++) {
         System.out.println(i + ": " + th[i]);
      }
   }

   public void run() {
      System.out.println("This is run() method");
   }

   public static void main(String args[]) {
      new ThreadDemo();
   }
}

Output

Let us compile and run the above program, this will produce the following result −

This is run() method
currently active threads = 2
0: Thread[#1,main,5,main]
1: null
java_lang_thread.htm
Advertisements
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy