一、继承Thread类:
创建步骤:
1.创建一个继承于 Thread类的子类;
2. 重写Thread类的 run()方法,线程执行的操作声明在 run()中;
3.创建此子类对象;
4.调用 start()方法:
有两个作用:
①启动当前线程
②调用当前线程的 run()
二、实现Runnable接口
创建步骤:
1.创建一个实现了 Runnable接口的类
2.实现类去实现 Runnable接口中的抽象方法:run()
3.创建实现类的对象
4.将此实现类作为参数传递到 Thread类的构造器中,创建 Thread类的对象
5.通过 Thread类的对象调用 start()
三、创建一个实现 Callable接口的实现类
> 实现 call()方法,将此线程需要执行的操作声明在 call()中
> 创建 Callable接口实现类的对象
> 将此 Callable接口实现类的对象作为参数传递到 FutureTask构造器中,创建 FutureTask对象
> 将 FutureTask的对象作为参数传递到 Thread类的构造器中,创建 Thread对象,并调用 start()
> 如果对返回值感兴趣,则通过 FutureTask对象的 get()方法获取 Callable中 call()的返回值