java中创建线程Thread
5种方法创建线程,其中第二种最为常见
public class Test1 {
//实现Runnable的接口
static class MyRun implements Runnable {
@Override
public void run() {
System.out.println("这是一个线程3");
}
}
static class MyThread extends Thread {
@Override
public void run() {
System.out.println("这是一个线程1");
}
}
public static void main(String[] args) {
//1.显式继承Thread
Thread t1 = new MyThread();
t1.start();
//2.通过匿名内部类的方式继承Thread
Thread t2 = new Thread() {
@Override
public void run() {
System.out.println("这是一个线程2");
}
};
t2.start();
//3.显式创建一个类,实现Runnable接口,然后把这个Runnable接口的接口连接到Thread实列上
Thread t3 = new Thread(new MyRun());
t3.start();
//4.通过匿名内部类来实现Runnable接口
Runnable runnable = new Runnable() {
@Override
public void run() {
System.out.println("我是一个线程4");
}
};
Thread t4 = new Thread(runnable);
t4.start();
//5.使用lambda表达式来指定,线程执行的内容
Thread t5 = new Thread(() -> {
System.out.println("这是一个线程5");
});
}
}
我们如果用t.run也可以打印出的内容和t.start打印出的一样,但是t.run只是普通方法的调用,并没有创建出新的线程。t.start 创建出新的线程,t.start才能在内核种创建线程。