一、线程创建的3种方式
    (1)自定义类继承Thread类并重写run方法,然后创建该类的对象调用start方法
    image.png
    (2)自定义类实现Runnable接口并重写run方法,创建该类(Runnable接口的实现类)的对象作为实参来构造Thread类型的对
    象,然后使用Thread类型的对象调用start方法
    image.png

    (3)从Java5开始新增加创建线程的第三种方式为实现java.util.concurrent.Callable接口
    image.png