创建线程的五种写法
1、通过继承Thread类并实现run方法创建一个线程package 创建线程;
/**
* @author AlenLin
* @version 1.0
* @DESCRIPTION TODO
* @date 2024/4/12 0:34
*/
//通过继承Thread类并实现run方法创建一个线程
class MyThread01 extends Thread {
@Override
public void run() {
System.out.println("hello thread!");
}
}
public class demo1 {
public static void main(String[] args) {
//实例化一个线程 对象
MyThread01 myThread01 = new MyThread01();
//真正去申请系统线程 参与 cpu调度
myThread01.start();
}
}
2、通过实现Runnable接口,并实现run方法的方法创建一个线程
/**
* @author AlenLin
* @version 1.0
* @DESCRIPTION TODO
* @date 2024/4/12 0:37
*/
//通过实现Runnable接口,并实现run方法的方法创建一个线程
class MyRunnable01 implements Runnable {
@Override
public void run() {
System.out.println("hello thread!");
}
}
public class demo2 {
public static void main(String[] args) {
//实例化Runnable 对象
MyRunnable01 runnable01 = new MyRunnable01();
// 实例化线程对象并绑定任务
Thread t = new Thread(runnable01);
// 真正的去申请系统线程参与CPU调度
t.start();
}
}
3、通过Thread匿名内部类创建一个线程
/**
* @author AlenLin
* @version 1.0
* @DESCRIPTION TODO
* @date 2024/4/12 0:40
*/
//通过Thread匿名内部类创建一个线程
public class demo3 {
public static void main(String[] args) {
Thread t = new Thread() {
//指定线程任务
@Override
public void run() {
System.out.println(Thread.currentThread().getName());
}
};
// 真正的申请系统线程参与CPU调度
t.start();
}
}
4、通过Runnable匿名内部类创建一个线程
/**
* @author AlenLin
* @version 1.0
* @DESCRIPTION TODO
* @date 2024/4/12 0:43
*/
//通过Runnable匿名内部类创建一个线程
public class demo4 {
public static void main(String[] args) {
Thread t = new Thread(new Runnable() {
// 指定线程的任务
@Override
public void run() {
System.out.println(Thread.currentThread().getName());
}
});
// 申请系统线程参与CPU调度
t.start();
}
}
5、通过Lambda表达式的方式创建一个线程
/**
* @author AlenLin
* @version 1.0
* @DESCRIPTION TODO
* @date 2024/4/12 0:44
*/
//通过Lambda表达式的方式创建一个线程
public class demo5 {
public static void main(String[] args) {
Thread t = new Thread(() -> {
// 指定任务:任务是循环打印当前线程名
while (true) {
System.out.println(Thread.currentThread().getName());
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
});
// 申请系统线程参与CPU调度
t.start();
}
}