Java ThreadGroup类checkAccess()方法与示例
ThreadGroup类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