步骤:
1.定义一个类继承Thread。
2.重写run方法。
3.创建子类对象,也就是线程对象。
4.调用start方法。开启线程并让线程执行,同时还会告诉jvm去调用run方法。(start做了两件事,开启线程和调用run方法。)
- 线程对象调用run方法和调用start方法区别(面试常考):
- 调用run方法不开启线程。仅是对象调用方法。
- 调用start开启线程,并让jvm调用run方法在开启的线程中执行。
实例:
class Demo extends Thread{ private String name; Demo(String name){ this.name = name; } public void run() { show(); } public void show(){ for (int i = 0; i < 20; i++) { System.out.println(name + "..." + i); } } } public class ThreadDemo { public static void main(String[] args) { Demo d1 = new Demo("xiaoqing"); Demo d2 = new Demo("wangcai"); d2.start(); d1.run(); //Thread是从0开始编号,这里创建了两个线程对象,但第一个线程没有开启。 } }