创建线程的两种实现方式:
这里我们介绍创建线程的两种实现方式,第一种是通过继承Thread类实现,第二种是实现Runnable接口。下面 我们 将进行代码对比:
第一种方式:
通过在继承 Thread 类实现:
public class Thread01 {
public static void main(String[] args) {
Thread thread1 = new MyThread();
Thread thread2 = new MyThread();
//所以我们要使用标准启动线程的方法start()
//jvm会用多线程的方式调用run()方法
thread1.start();
thread2.start();
}
}
class MyThread extends Thread{
public void run() {
for (int i = 0; i < 1000; i++) {
System.out.println("这里是线程体!!!"+i);
}
}
}
第二种实现方式:
通过实现Runnable接口:
public class Thread01 {
public static void main(String[] args) {
//创建MyThread01类的对象 将对象作为实际参数传递给Thread类的构造方法中, 创建线程对象
//然后执行start()方法启动线程
Thread thread1 =new Thread(new MyThread01());
Thread thread2 =new Thread(new MyThread01());
thread1.start();
thread2.start();
}
}
class MyThread01 implements Runnable{
@Override
public void run() {
for (int i = 0; i < 100; i++) {
System.out.println(Thread.currentThread().getName()+":"+i);
}
}
}
其中
Thread.currentThread().getName()是调用当前线程的名字,将名字打印出来,以便于区分两个线程。