1、自定义线程类继承Thread类
2、重写run方法,编写线程执行体
3、创建线程对象,调用start方法启动线程
public class ThreadTest extends Thread { @Override public void run() { //run方法县城提 for (int i = 0; i < 2000; i++) { System.out.println("我再看代码"+i); } } public static void main(String[] args) { new ThreadTest().start(); //main线程 for (int i = 0; i < 20000; i++) { System.out.println("我再学习多线程"); } // new ThreadTest().start(); }
线程体不一定立即执行,cpu安排调度
另注意 创建线程对象,不能调用run 方法。主线程调用run方法。run方法执行完,再去执行主路径。只有主线程一条执行路线。
使用start则,主线程调用start方法,开启新的线程执行,主线程依旧执行主线程的方法。主线程和子线程交替执行。
用户线程和守护线程。jvm定义的GC则为守护线程