Thread
的构造器都是调用了init
方法,所以我们来看一下init
方法
private void init(ThreadGroup g,
Runnable target,
String name,
long stackSize,
AccessControlContext acc,
boolean inheritThreadLocals) {
// name字段不可为空,new Thread的时候会赋予“Thread-数字”的名字
if (name == null) {
throw new NullPointerException("name cannot be null");
}
this.name = name;
// 调用该方法的线程是新线程的parent
Thread parent = currentThread();
// System里的SecurityManager实例是静态代码块初始化的时候调用了一个na