//方法一调用start的方法需要的步骤 MyRunnable my = new MyRunnable(); Thread t = new Thread(my); t.start(); //方法二采用匿名内部类的方法 new Thread(new Runnable() { @Override public void run() { System.out.println("多线程启动了"); } }).start(); //方法三Lambda表达式 new Thread( () -> { System.out.println("多线程启动了"); } ).start();
可以看出lambda表达式最简洁,但是使用的使用它得有条件.
1.有一个接口,并且接口里只有一个抽象方法。
2.要有引用,
public Thread(Runnable target) { init(null, target, "Thread-" + nextThreadNum(), 0); }
public interface Runnable { public abstract void run(); }
在我们创建这个Thread线程类的时候,它需要一个Runnable接口,然后Runnable接口有一个抽象方法,就符合我们以上两个条件,这个时候,我们就能使用lambda表达式,来让我们的代码更加的好看,不复杂,这个和js差不多箭头函数。