创建线程的第一种方式: 继承 Thread类重写Tjread类的run方法创建线程的子类对象调用start方法启动线程 创建线程的第二种方法: 定义实现类Runnable接口实现接口里的run方法,也就是将线程要执行的任务封装在run方法中创建一个线程对象,然后将实现Runnable接口的类作为创建线程对象的构造方法的参数传入调用线程独享的start方法,启动线程