一)继承Runnable接口
Runnable接口简介:
@FunctionalInterface
public interface Runnable {
public abstract void run();
}
@FunctionalInterface:函数式接口,有以下几个特点。
1)接口中有且仅有一个抽象方法。
2)可允许定义静态方法和默认方法。
3)允许java.lang.Object中的public方法。
4)该注解不是必须的,只要符合“函数式接口”即可,加上该注解能让编译器更好检查。如不符合规则,又添加该注解,编译器就会报错。
实现步骤:
第一步:自定义一个类,继承Runnable接口。
第二步:重写run()方法。
方式一:通过Thread类构造Runnable实现。
public class MyOneRunnable implements Runnable {
// 通过构造函数的方式,指定一个变量
private String threadName;
public MyOneRunnable(String threadName) {
this.threadName = threadName;
}
public void run() {
try {
for (int i = 0; i < 5; i++) {
System.out.println("Runnable: " + threadName + ", i=" + i);
Thread.sleep((int)(Math.random()*100)); // 随机睡眠指定毫秒
}
} catch (InterruptedException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
MyOneRunnable r1 = new MyOneRunnable("Thread 1");
Thread t