1. 线程的两种实现形式
- 继承Thread类
//继承Thread类 static class MyThread1 extends Thread{ @Override public void run() { System.out.println("继承Thread实现本人的线程"); } }
- 实现Runnable接口
//实现Runnable接口 static class MyThread2 implements Runnable{ @Override public void run() { System.out.println("实现Runnable接口实现本人的线程"); } }
2.线程的启动
public static void main(String[] args) { //1.通过继承Thread创立本人的线程并且启动 new MyThread1().start(); //2.通过实现Runnable,创立本人的线程并且启动 new Thread(new MyThread2()).start(); //3.通过匿名外部类创立线程 new Thread(new Runnable() { @Override public void run() { System.out.println("匿名外部类实现的线程"); } }).start(); //4.lambda表达式创立线程 new Thread(()->{ System.out.println("通过"); }).start(); }
留神 不论用哪种形式实现本人的线程,最终要启动线程必须得通过Thread.start()办法启动,start()办法会把线程交给CPU去调度执行,只有当CPU调度到线程把工夫片调配给它,线程才会执行。