多线程的创建之—-继承Thread类
继承Thread类。并重写run()方法,然后启动线程
1、自定义MyThread类,继承Thread类
2、在MyThread类中重写run方法
3、创建MyThread类的对象
4、启动线程对象(start方法是Thread类的方法)
1、举个小例子:
MyThread类:
public class MyThread extends Thread {
@Override
public void run() {
for (int i = 0; i < 100; i++) {
System.out.println(this.getName() + ":" + i);
}
}
}
测试类:
public class MyThreadDemo {
public static void main(String[] args) {
MyThread myThread = new MyThread(); //创建MyThread类的线程对象
MyThread myThread2 = new MyThread(); //创建MyThread类的线程对象
myThread.start(); //启动线程
myThread2.start(); //启动线程
}
}
控制台输出:只截取一部分,看个效果即可。因为数据量太大。
Thread-0:0
Thread-1:0
Thread-0:1
Thread-1:1
Thread-1:2
2、为什么我调用getName()方法后,它的名字显示的是Thread-的形式呢?
我们来看看源码:
private char name[];
//MyThread 类会有一个默认无参构造,这个构造默认会默认调用父类Thread的无参构造
public MyThread extends Thread{
public MyThread(){
super();
}
}
//第一步:
public Thread() {
init(null, null, "Thread-" + nextThreadNum(), 0);
}
//第二步
private static int threadInitNumber; //默认值是0
private