线程有三种创建方式:
线程创建和启动方式一:继承Thread类
创建继承Thread类的对象,用这个对象调用start方法
线程创建和启动方式二:实现Runnable接口定义实现类
创建实现接口runnable 类的对象,将对象的值传给Thread类的对象,再用hread类的对象调用start方法
线程创建和启动方式三:使用Callable和Future创建线程
FutureTask类实现RunnableFuture接口,该接口继承Runnable接口
FutureTask获取子线程返回的值,再把值传给Threa类对象,hread类的对象调用start方法
三种方式的比较
采用继承Thread类方式优点:编写简单,如果需要访问当前线程,无需使用Thread.currentThread()方法,直接使用this,即可获得当前线程。缺点:因为线程类已经继承了Thread类,所以不能再继承其他的父类。采用实现Runnable接口方式: