1.public class CoreThread extends Thread {
private static int i=0;
public CoreThread() {
super(""+ ++i);
start();
}
.......
}
//为什么i必须是static?否则就有"父类构造器调用之前不能引用它"错误.2.线程调度机制是抢占式的吗?3.如何线程可以同名,那么JAVA用什么来标识?thanks!
private static int i=0;
public CoreThread() {
super(""+ ++i);
start();
}
.......
}
//为什么i必须是static?否则就有"父类构造器调用之前不能引用它"错误.2.线程调度机制是抢占式的吗?3.如何线程可以同名,那么JAVA用什么来标识?thanks!
而static 不属于任何对象2、是3,猜想,你并不能通过构造的那个名字对线程做任何操作,只能通过引用来操作线程。jvm实际上并不是通过线程的名字来识别线程的。线程是用本地方法实现了。
不知道对不对。
线程是抢占的
jvm不是通过线程的名字来管理线程的,这个名字可以随便处理。
-------------
因为在父类构造函数装载之前,i还没有装载。所以用static来装载这个变量