Java多线程中继承Thread和实现Runable接口的区别?

Java中,继承Thread类和实现Runnable接口创建多线程有不同的效果。继承Thread类的线程对象间无法共享成员变量,而实现Runnable接口的线程可以共享。这实际上是接口和继承的体现,实现Runnable接口更利于资源的共享,适用于多个线程共同完成任务。通过代码示例,展示了两者在创建线程和共享变量上的差异。

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

继承Thread和实现Runable接口的区别?
继承Thread类的子线程类,多个线程对象间是无法共享成员变量的!!!
如果是静态成员,也是共享的!!!!
实现Runable接口都子线程类,多个线程对象间是共享线程类的成员变量的!!!
其实,抽象来说,这并不是Thread类和Runnable接口的区别了,这可以看做是接口和继承的问题。我们弄懂了接口和继承,就不难理解Thread和Runnable。
在刚接触的时候可能会有些迷糊这二者的区别于联系,但是实践和总结过后我们会发现这是两个完全不同的实现多线程,一个是多个线程分别完成自己的任务,一个是多个线程共同完成一个任务。其实,在实现一个任务用多个线程来做也可以用继承Thread类来实现,只是比较麻烦,一般我们用实现Runnable接口来实现。
下面我们用代码来展示一下:
继承Thread:
请添加图片描述
后面一种是实现Runable接口:请添加图片描述
显然,这两个结果是不同的。为什么会这样呢?我们来分析一下。
其实,第一个继承Thread类来实现多线程,其实是相当于拿出三件事即三个卖早餐10份的任务分别分给三个窗口,他们各做各的事各卖各的早餐各完成各的任务,因为

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值