龙空技术网

java 多线程实现方式

java技术阅读 231

前言:

今天咱们对“java实现多线程的方式有哪些”都比较关切,同学们都想要学习一些“java实现多线程的方式有哪些”的相关内容。那么小编也在网上搜集了一些对于“java实现多线程的方式有哪些””的相关内容,希望各位老铁们能喜欢,我们快快来学习一下吧!

本文主要是对java 多线程知识的总结,做个记录,温故知新。

多线程有三种实现方式,具体如下。

继承Thread类创建线程类重写run方法,完成线程需要做的任务。创建实例调用start()启动线程

继承Thread,创建线程类

创建实例-启动线程

实现Runnable接口创建线程类创建实现Runnable类,重写run方法,完成线程需要做的任务创建Runnable实例,作为Thread类的Target创建Thread实例,启动线程

创建实现Runnable类

创建Thread实例,启动线程

使用Callable和Future创建线程创建实现Callable类,重写call方法,完成线程需要做的任务,并返回值使用FutureTask包装Callable对象使用FutureTask实例作为Thread类的Target创建Thread实例,启动线程调用FutureTask实例的get方法,获取返回值

创建实现Callable类,重写call

创建Thread实例,包装Callable,获取返回值

优缺点

使用Thread类方式,编写简单,不过因为继承了Thread类,不能再继承其他父类,带来了Java的单继承特性带来的局限

使用实现Runnable接口方式,只是实现了Runnable接口,还可以再继承其他父类,有利于程序的健壮性,代码能够被多个线程共享,代码与数据是独立的。适合多个相同程序代码的线程去处理同个资源的情况,把线程同程序的代码、数据有效的分离,较好地体现了面向对象的设计思想。

使用实现Callable接口方式,只是实现了Callable接口,也可以再继承其他父类,除了具有Runnable接口的优点之外,而且还有返回值,很好的适用需要返回值的场景,不过编写比较复杂,得根据具体情况选择。

总结

因此一般推荐使用实现Runnable接口创建多线程。如果需要返回值的场景,则使用Callable接口的方式创建多线程。

标签: #java实现多线程的方式有哪些