1、继承Thread类
2、实现runnable接口
3、实现Callable接口
callable接口和runnable接口类似,runnable接口重写了run方法、callable接口重写了call方法,前者无返回值,后者有返回值,返回值类型就是传进来的参数值。另外callable接口还可以抛异常。
callable接口往往和future接口合用,future的接口的实现类是futuretask,把callable线程放进线程池里,将执行后的结果赋值给future对象,再通过future对象的get()api即可或得返回线程的执行结果。