创建线程的三种方式
1.继承java.lang.Thread类
编写简单,可直接操作线程
适用于单继承
2.实现java.lang.Runnable 接口
避免单继承局限性
便于共享资源
3.实现Callable接口
需要重写Call方法
一,定义一个Callable类 实现Callable接口
二,在Callable类中重写call();方法
三,创建 Callable类的对象
四,创建Future的实现类 FuntureTask对象把Callable对象作为构造方法的参数传递
五,创建 Thread类的对象把FuntureTask对象作为构造方法的参数
六,启动线程
推荐使用Runnable 接口方式创建线程
继承Thread类实现分别完成自己的任务,无法共享资源
实现Runnable接口一个多线程共同完成一个任务,资源共享