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调度到线程把工夫片调配给它,线程才会执行。