创建方式
创建线程-继承Thread类
创建线程-实现Runnable接口
创建线程-采用Callable接口-普通创建callable实现实现类的方式
- 步骤
- 创建Callable的实现类,并冲写call()方法,该方法为线程执行体,并且该方法有返回值
- 创建Callable的实例,并用FutuerTask类来包装Callable对象,该FutuerTask封装了Callable对象call()方法的返回值
- 实例化FutuerTask类,参数为FutuerTask接口实现类的对象来启动线程
- 通过FutuerTask类的对象的get()方法来获取线程结束后的返回值
创建线程-采用Callable接口-lambda表达式
优缺点
采用实现Runnable、Callable接口方式创建多线程
优点
1.线程只是实现了Runable接口或者Callable接口,还可以继承其它类。
2.在这种方式下,多个线程可以共享同一个target对象,比较适合多个相同线程来处理同一份资源的情况。
缺点
编程略复杂,如果需要访问当前线程,则必须使用Thread currentThread()方法。
采用继承Thread类来创建多线程
优点
编写简单,如果需要访问当前线程,只需使用this即可获得当前线程。
缺点
因为继承了Thread类,所以不能再继承其他父类。
推荐
一般推荐采用实现Runnable、Callable接口的方式来创建多线程。