多线程的五种创建方式。
第一种:通过继承Thread类
public class CreateThread01 extends Thread{ @Override public void run(){ //在run方法中实现要实现的业务逻辑 System.out.println(Thread.currentThread().getName()); } public static void main(String[] args) { CreateThread01 thread01 = new CreateThread01(); thread01.setName("dome1"); thread01.start(); } }
第二种:通过实现 Runnable 创建线程
public class CreateThread02 implements Runnable { @Override public void run() { System.out.println(Thread.currentThread().getName()); } public static void main(String[] args) { Thread thread = new Thread(new CreateThread02()); thread.setName("dome2"); thread.start(); } }
第三种:通过匿名内部类创建线程
public class CreateThread03 { public static void main(String[] args) { Thread thread = new Thread(new Runnable() { @Override public void run() { System.out.println(Thread.currentThread().getName()); } }); thread.start(); } }
第四种:通过lambda表达式创建
public class CreateThread04 { public static void main(String[] args) { new Thread(()-> { System.out.println(Thread.currentThread().getName()); }).start(); } }
第五种:通过线程池创建
public class CreateThread05 { public static void main(String[] args) { ExecutorService executorService = Executors.newSingleThreadExecutor(); executorService.execute(()->{ System.out.println(Thread.currentThread().getName()); }); } }
总结:其实在工作中第二种用到的比较多,在java中因为是单继承,故不推荐使用第一种,而java可以实现多个接口。所以第二种比较多。第四种为lambda表达式是java8的新特性值得深入学习