1.线程实际就是一个栈,每个线程都有一个名字,例如主线程叫做main线程,但是线程的名字和线程里面的方法栈没有半毛钱关系,线程就是一个空间,里面存的是 指令
2.如何创建线程(以主线程为例)
首先分配一个栈空间,然后压栈(每一个线程在创建的时候,都会有一个主方法栈,也就是说起码得有一个方法栈),而这个方法栈实际和我们普通的调用方法一样,都是从类和对象的方法里面来的
以main线程为例子,jvm分配 主线程空间,调用 对象的 main方法,main方法压栈…,而main方法能获得的资源,现在只有 main方法的那个对象的 属性
同样,我们创建线程,首先得有一个类,对象(实现了 runnable接口的),然后调用创建线程的 api , 此时 jvm 分配一个栈空间,压入,这个对象的 run方法进栈,而这个run方法也是从对象中来的,此刻run方法 只能获得 这个对象的 属性
总而言之,一切都是类和,对象,而线程就是栈空间,栈空间中的 栈帧就是方法栈,这些压栈过程,都是调用的 类的对象的方法,所以方法栈中 能调用的属性和方法,也适用于 类和对象的 规则