方式一:
通过继承 Thread 来创建一个线程,该方法的好处是 this 代表的是当前的线程,不需要通过 Thread.currentThread() 来获取当前线程的引用
package lesson1;
// 方式一:
public class CreateThread {
public static void main(String[] args) {
MyThread1 myThread1 = new MyThread1();
myThread1.start();
}
}
class MyThread1 extends Thread {
@Override
public void run() {
System.out.printf("创建一个新的线程" + this.getName());
}
}
方式二:
package lesson1;
public class CreateThread {
public static void main(String[] args) {
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
System.out.printf("创建一个新线程 " + Thread.currentThread().getName());
}
});
thread.start();
}
}
方式三:
实现 Runnable 接口,调用 Thread 的构造方法时将 Runnable 对象作为 target 参数传入来创建线程对象
该方法的好处是可以避免类的单继承限制,但是不能通过 this 来获取当前线程,需要通过 Thread.currentThread 方法来获取当前的线程
package lesson1;
public class CreateThread {
public static void main(String[] args) {
Thread thread = new Thread(new MyRunnable1());
thread.start();
}
}
class MyRunnable1 implements Runnable {
@Override
public void run() {
System.out.printf("创建一个新的线程 " + Thread.currentThread().getName());
}
}