多线程的建立和启动
* 在java语言中实现多线程的第一种方式, 继承 java.lang.Thread; 以后重写run()方法。
* 使用多线程以后,主线程和其余线程是不在同一个栈中的,一个线程对应一个栈。
* main方法会自动建立一个主线程,main方法结束只是表明主线程的栈弹空了,没有栈帧了, 可是其余线程的栈中可能还有栈帧,还会继续执行。
package com.shige.Thread;
/*
在java语言中实现多线程的第一种方式, 继承 java.lang.Thread; ,重写run()方法。
使用多线程以后,主线程和其余线程不在同一个栈中,一个线程对应一个栈,main方法结束只是主线程的栈弹空了,没有栈帧了,可是其余线程的栈中可能还有栈帧,还会继续执行。
*/
public class ThreadTest0 {
public static void main(String[] args) {
//建立线程
Thread thread=new Processor(); //父类引用指向子类对象
//启动线程,告诉JVM再分配一个栈给thread线程
//run()方法不须要手动调用,线程启动后会自动调用
thread.start();
//若是直接调用thread.run();方法,那就是普通的调用了一个方法,没有产生新的线程,程序仍是单线程的只有一个主线程,会按程序顺序执行,不会交叉执行了。
// thread.run();
//该for循环在主线程中运行
for (int i = 0; i <10 ; i++) {
System.out.println("main---->"+i);
}
}
}
//定义一个线程
class Processor extends Thread{ //继承 java.lang.Thread;
//重写run()方法,该方法运行在新建立的线程中。
public void run(){
for (int i = 0; i < 10; i++) {
System.out.println("run---->"+i);
}
}
}