Java Thread checkAccess() 方法



描述

Java Thread checkAccess() 方法用于确定当前运行的线程是否有权限修改此线程。

声明

以下是 java.lang.Thread.checkAccess() 方法的声明

public final void checkAccess()

参数

返回值

此方法不返回任何值。

异常

SecurityException − 如果当前线程不允许访问此线程。

示例:在多线程环境中检查线程是否具有访问权限

以下示例演示了 Java Thread checkAccess() 方法的用法。在这个程序中,我们通过实现 Runnable 接口创建了一个线程类 ThreadClass。在 main 方法中,我们创建了 ThreadClass 的实例。然后使用 currentThread() 方法检索当前线程,并使用 checkAccess() 方法检查当前线程是否具有权限。

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");
   }
} 

输出

让我们编译并运行上述程序,这将产生以下结果:

You have permission to modify
This is run() function

示例:在单线程环境中检查线程是否具有访问权限

以下示例演示了 Java Thread checkAccess() 方法的用法。在这个程序中,我们创建了一个类 ThreadDemo。在 main 方法中,使用 currentThread() 方法检索当前线程,并使用 checkAccess() 方法检查当前线程是否具有权限。

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);
      }
   }
}

输出

让我们编译并运行上述程序,这将产生以下结果:

You have permission to modify
java_lang_thread.htm
广告