1.new 一个类,但是这个类需要继承Thread,并且重写thread里面的run方法。
public class CustomThread extends Thread { //run是线程真正执行的任务 @Override public void run() { for (int i = 0; i <10 ; i++) { System.out.println(i); } } }
缺点:因为每个类都只能继承一个父类,很宝贵,不能随意继承
2.new一个Thread,括号里面需要加入一个Runnable接口的实现类
①匿名内部类:
Thread thread = new Thread(new Runnable() { @Override public void run() { for (int i = 0; i <10000; i++) { System.out.println("A"+i); } } });
②lamda表达式写法:
Thread thread1 = new Thread(()->{ for (int i = 0; i <10000 ; i++) { System.out.println("b"+i); } });
3.new 一个Thread,括号里面需要加入一个Runnable接口的实现类,但是有一个返回值。
步骤1:new 一个可存放Callable实现类的类
FutureTask futureTask = new FutureTask<>(()-