1.继承Thread 优点:可以直接使用Thread类中的方法,代码简单 缺点:继承Thread类之后就不能继承其他的类 2.实现Runnable接口 优点:即时自定义类已经有父类了也不受影响,因为可以实现多个接口 缺点:在run方法内部需要获取到当前线程的Thread对象后才能使用Thread中的方法 3.实现Callable接口 优点:可以获取返回值,可以抛出异常 缺点:代码编写较为复杂