checkAccess()
方法checkAccess()方法在java.lang包中可用。
checkAccess()方法用于检查当前正在运行的线程是否具有更新线程组的权限。
checkAccess()方法不是静态方法,因此无法使用类名进行访问(即,只能使用类对象访问此方法)。
checkAccess()方法是最终方法,因此它是不可重写的(即,该方法在子类中不可重写)。
访问线程组时,此方法可能会引发异常。
SecurityException:在存在安全管理器的情况下,当当前线程无权访问线程组时,发生此异常。
语法:
public final void checkAccess();
参数:
此方法不接受任何参数。
返回值:
此方法的返回类型为void,它不返回任何内容。
示例
//Java程序演示的例子 //ThreadGroup类的checkAccess()方法。 import java.lang.*; class CheckAccess extends Thread { //覆盖run()Thread类 public void run() { String name = Thread.currentThread().getName(); System.out.println(name + " " + "finish executing"); } } public class Main { public static void main(String[] args) { CheckAccess ca = new CheckAccess(); try { //我们正在创建ThreadGroup类的对象 ThreadGroup tg1 = new ThreadGroup("ThreadGroup 1"); ThreadGroup tg2 = new ThreadGroup("ThreadGroup 2"); //我们正在创建Thread类的对象,然后 //我们正在分配两个线程的ThreadGroup- Thread th1 = new Thread(tg1, ca, "First Thread"); Thread th2 = new Thread(tg2, ca, "Second Thread"); //start()使用Thread类对象的调用方法 //线程类 th1.start(); th2.start(); //在这里,我们正在检查ThreadGroup的访问权限 try { tg1.checkAccess(); System.out.println(tg1.getName() + " " + "has access"); tg2.checkAccess(); System.out.println(tg2.getName() + " " + "has access"); } catch (SecurityException se) { System.out.println(se.getMessage()); } th1.join(); th2.join(); } catch (Exception ex) { System.out.println(ex.getMessage()); } } }
输出结果
E:\Programs>javac Main.java E:\Programs>java Main ThreadGroup 1 has access ThreadGroup 2 has access First Thread finish executing Second Thread finish executing