一:继承Thread类
1.创建类继承Thread类,重写run()
public class MyThread extends Thread {
@Override
public void run() {
//打印线程名称
System.out.println(Thread.currentThread().getName());
}
}
2.测试
public class Test {
public static void main(String[] args) {
//1.打印main主线程名称
System.out.println(Thread.currentThread().getName());
//2.创建新线程对象,启动线程
MyThread myThread = new MyThread();
myThread.start();
}
}
二:实现Runnable接口
1.创建类实现Runnable接口,重写run()
public class MyRunnable implements Runnable {
@Override
public void run() {
System.out.println(Thread.currentThread().getName());
}
}
2.测试
public class Test {
public static void main(String[] args) {
//1.打印main主线程名称
System.out.println(Thread.currentThread().getName());
//2.创建自定义线程对象
MyRunnable myRunnable = new MyRunnable();
//3.创建线程对象,传递自定义线程类,可以同时创建多个线程,执行同一个run()
Thread thread = new Thread(myRunnable);
Thread thread1 = new Thread(myRunnable);
//4.启动线程
thread.start();
thread1.start();
}
}
三.对比
实现runnable接口实现多线程的好处:
1.避免了单继承的局限性
2.解耦
实现runnable接口方式把设置线程任务和开启线程进行分离