1.线程的创建和启动(Thread类):
package ThreadTest;
/*
在java语言中实现多线程的第一种方式
第一步:继承java.lang.Thread;
第二步:重写run方法
三个知识点:
如果定义线程?
如何创建线程?
如果启动线程?
*/
public class ThreadTest2 {
public static void main(String[] args) {
//创建线程
Thread t=new Processor();
//启动
t.start();//这段代码执行瞬间结束。告诉jvm再分配一个新的栈给t线程。
//run方法不需要程序手动调用,系统线程启动之后自动调用run方法。
//t.run(); 这是普通方法调用,这样做程序只有一个线程,run方法结束之后,下面程序才能继续执行。
for(int i=0;i<10;i++) {
System.out.println("main-->"+i);
}
//有了多线程后,main方法结束只是主线程栈中没有方法栈帧了。
//但是其他线程或者其他栈中还有栈帧。
//main方法结束,程序可能还在运行。
}
}
//定义一个线程
class Processor extends Thread{
//重写run方法
public void run() {
for(int i=0;i<100;i++) {
System.out.println("run-->"+i);
}
}
}
2.线程的创建和启动(Runnable接口)
package ThreadTest;
/*
* java中实现线程的第二种方式:
* 第一步:写一个类实现java.lang.Runnable;接口
* 第二步:实现run方法
*
*
*/
public class ThreadTest3 {
public static void main(String[] args) {
//创建线程
Thread t=new Thread(new Proccessor());
//启动
t.start();
}
}
//这种方式是推荐的,因为一个类实现接口之外,还保留了类的继承。
class Proccessor implements Runnable {
public void run() {
for(int i=0;i<100;i++) {
System.out.println("run-->"+i);
}
}
}