继承thread创建线程类
1.定义thread类的子类,并重写run方法,该run方法的方法体就代表了线程要完成的任务。因此把run方法称为该方法的执行体
2.创建thread子类的实例,即创建对象
3.调用线程对象的start()方法来启动该线程。
通过runnable接口创建线程类
通过callable和future创建线程
创建callable接口的实现类,并实现call()方法,该call()方法将作为线程执行体,并且有返回值
future
使用FutureTask对象作为Thread对象的target创建并启动新线程。
调用FutureTask对象的get()方法来获得子线程执行结束后的返回值
三种的比较
采用runnable和callable接口创建线程时优势
实现了接口还可以去继承其他类