两种方式使用线程:
1 使用Runnable接口实现
- 实现Runnable接口
将任务代码移到实现Runnable接口的类的run方法中:public class MyRunnable implements Runnable { @Override public void run() { ... //task code } }
- 创建Runnable实例
由于Runnable是一个函数式接口,也可以直接使用lambda表达式创建实例:Runnable r = new MyRunnable();
Runnable r = () -> {... // task code};
- 由Runnable创建一个线程并启动
Thread t = new Thread(r); t.start();
2 构建Thread类的子类
public class MyThread extends Thread {
@Override
public void run() {
... // task code
}
}
MyThread myThread = new MyThread();
myThread.start();
另: 启动新线程调用start(),调用run()只执行任务不会创建新线程。