Java Thread checkAccess() Method



Description

The Java Thread checkAccess() method determines if the currently running thread has permission to modify this thread.

Declaration

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

public final void checkAccess()

Parameters

NA

Return Value

This method does not return any value.

Exception

SecurityException − if the current thread is not allowed to access this thread.

Example: Checking if a Thread has Access in Multi-Threaded Environment

The following example shows the usage of Java Thread checkAccess() method. In this program, we've created a thread class ThreadClass by implementing Runnable interface. In main method, we've created the instance of ThreadClass. Then using currentThread() method, current thread is retrieved and using checkAccess() method, we've checked if current thread has permission or not.

package com.tutorialspoint;

public class ThreadDemo {

   public static void main(String args[]) {

      new ThreadClass("A");
      Thread t = Thread.currentThread();

      try {
         /* determines if the currently running thread has permission to 
            modify this thread */
         t.checkAccess();
         System.out.println("You have permission to modify");
      }

      /* if the current thread is not allowed to access this thread, then it 
         result in throwing a SecurityException. */
      catch(Exception e) {
         System.out.println(e);
      }
   }
}

class ThreadClass implements Runnable {

   Thread t;
   String str;

   ThreadClass(String str) {

      this.str = str;
      t = new Thread(this);
      
      // this will call run() function
      t.start();    
   }

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

Output

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

You have permission to modify
This is run() function

Example: Checking if a Thread has Access in Single-Threaded Environment

The following example shows the usage of Java Thread checkAccess() method. In this program, we've created a class ThreadDemo. In main method, using currentThread() method, current thread is retrieved and using checkAccess() method, we've checked if current thread has permission or not.

package com.tutorialspoint;

public class ThreadDemo {

   public static void main(String args[]) {

      Thread t = Thread.currentThread();

      try {
         /* determines if the currently running thread has permission to 
            modify this thread */
         t.checkAccess();
         System.out.println("You have permission to modify");
      }

      /* if the current thread is not allowed to access this thread, then it 
         result in throwing a SecurityException. */
      catch(Exception e) {
         System.out.println(e);
      }
   }
}

Output

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

You have permission to modify
java_lang_thread.htm
Advertisements