第一种方法 使用Thread的方法创建线程
1.写一个Thread的子类去继承Thread
2.复写run方法,方法内写线程的执行代码
3.创建Thread的子类对象
4.调用start()方法,开启线程
第二种方法 实现Runnable接口的方法
1.写一个Runnable接口的实现类
2.复写run方法,编写线程的执行代码
3.创建Thread对象,将Runnable接口的实现类对象作为参数传递给Thread
4.调用start()方法,开启线程
第三种方法 实现Callable接口
1.写一个Callable接口的实现类
2.复写call方法。有返回值
3.创建Callable的实现类对象
4.创建FutureTask对象,把Callable的子类对象作为参数传递
5.创建Thread对象,把FuTureTask对象作为参数传递
6.调用start方法,开启线程
注意:如果想的到线程的执行结果,在start方法调用之后,调用FuTureTask对象的get方法