java的多线程实现方式_java 多线程实现方式

本文详细介绍了Java中创建多线程的三种方法:继承Thread类、实现Runnable接口以及使用Callable和Future。对比了各种方式的优缺点,推荐在大多数情况下使用实现Runnable接口创建线程,对于需要返回值的场景则推荐使用Callable接口。这种方式既能保持代码的灵活性,又易于管理和维护。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

2a3f0ea90efc97bd1cfb19538516d720.png

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

继承Thread类创建线程类

重写run方法,完成线程需要做的任务。

创建实例

调用start()启动线程

26d9c94e929447d5508d4c1fb39d7d61.png

继承Thread,创建线程类

24640421f170178c69e360fb51d55c73.png

创建实例-启动线程

实现Runnable接口创建线程类

创建实现Runnable类,重写run方法,完成线程需要做的任务

创建Runnable实例,作为Thread类的Target

创建Thread实例,启动线程

dd15e2ba52c86161c2d78bf1abddc81f.png

创建实现Runnable类

3d861db3676759a55f4fe50a103aa4ff.png

创建Thread实例,启动线程

使用Callable和Future创建线程

创建实现Callable类,重写call方法,完成线程需要做的任务,并返回值

使用FutureTask包装Callable对象

使用FutureTask实例作为Thread类的Target

创建Thread实例,启动线程

调用FutureTask实例的get方法,获取返回值

895b00e438a7dc99c03e97e746a2eba5.png

创建实现Callable类,重写call

62e1ee80eac285544ebf1a7851bce251.png

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

优缺点

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

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

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

总结

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值