Java多线程两种实现方式的比较

实现多线程的两种方式,一种是继承Thread类,一种是实现Runnable接口,有两个例子如下:方式一:方式二:疑问:为什么实现Runnable时,创建线程对象不能写成"... 实现多线程的两种方式,一种是继承Thread类,一种是实现Runnable接口,有两个例子如下:
方式一:

方式二:

疑问:
为什么实现Runnable时,创建线程对象不能写成 " MyThread mt=new MyThread();"?
明白了,就是说采用实现Runnable的方式时,例子2中定义的MyThread类并没有采用extends表明继承了Thread类,因此要调用Thread类中才有的start()方法,必须先创建Thread类的对象,才能调用start()方法,而Thread mt = new Thread(new MyThread())就是创建Thread类的对象的;

与方式2不同,在方式1中,MyThread类直接继承extends了Thread类,当然MyThread的对象就可以直接调用start()方法了!谢谢诸位!
展开
 我来答
仯爺c
推荐于2017-09-07 · 超过20用户采纳过TA的回答
知道答主
回答量:81
采纳率:0%
帮助的人:53.2万
展开全部
因为Runnable是一个接口,没有定义start()方法,只有run()方法而已,(extends)是继承Thread的方法,所有能使用它的所有方法。
helpmeps
2013-05-27 · TA获得超过577个赞
知道小有建树答主
回答量:292
采纳率:50%
帮助的人:347万
展开全部
runnable中没有start方法,而且只需要写一个runnable,就可以多个thread共享了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式