面试题答案
一键面试创建线程组的步骤
- 定义线程组:使用
ThreadGroup
类来创建线程组。例如:
ThreadGroup group = new ThreadGroup("MyGroup");
这里,构造函数中的参数是线程组的名称。
向线程组中添加线程
- 通过Thread构造函数:在创建
Thread
对象时,将线程组作为参数传入。例如:
Thread thread = new Thread(group, new Runnable() {
@Override
public void run() {
// 线程执行的代码
}
});
- 启动线程:调用
start
方法启动线程,此时该线程就会属于指定的线程组。
thread.start();
线程组的常见用途
- 线程管理:可以对一组线程进行统一的操作,比如同时中断线程组内所有线程。
group.interrupt();
- 安全控制:线程组可以设置安全策略,对组内线程的资源访问等进行统一限制。
- 异常处理:可以为线程组设置一个
UncaughtExceptionHandler
,当组内线程出现未捕获异常时,进行统一处理。
group.setUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() {
@Override
public void uncaughtException(Thread t, Throwable e) {
// 异常处理逻辑
}
});