问答详情
源自:2-4 应用揭秘

Thread和Runnable的区别

老师,俺觉得第二点并不是两者的区别,Thread程序是new了三个MyThread,而只启动了一个线程,Runnable则是new了一个MyThread启动了三个线程,也就是说前者一个线程运行着三个不同的对象,后者则是同一个对象给三个线程,是代码的实现方式不一样而不是Thread和Runnable的区别。 一点拙见,若有问题还望指正

提问者:萤火虫_4 2015-11-02 21:48

个回答

  • 剪忉手
    2019-01-02 00:05:08

    继承thread类和实现runnable接口本身就没有什么可比性。两者根部就不是同一类东西一个是接口,另一个是继承类且这个thread类也是继承了Runnable接口的。两者不同在于方法的实现不同,我也可以在继承thread类里写runnable的方法。再有就是java单继承的劣势,这点上Runnable会更好些。

  • 团cn_0
    2016-01-26 10:01:50

    同意萤火虫的,两件事物的可比性,肯定是除了要比较的方面,其他方面都一样才能有可比性,这视频,在两个主函数立面,两个对象的实例化的方法都不一样,咋比较?如果我把extends thread 换成implements Runnable,其他代码部分都一样,这两段代码执行效果完全一样啊。那这两个东西的区别到底在哪里啊?!

  • 去南极给企鹅洗热水澡
    2015-12-02 14:45:33

    呃,前者不是一个线程三个对象,是三个Thread对象,也是三个线程,这三个线程启动后都会执行5次卖票,实现不了共享“5张票”这个资源,所以输出就会有15张票卖出去,显然不符合实际,用Runnable就可以解决这个问题,创建的三个线程可以共享“5张票”这个资源,建议再看一遍课程,老师讲的蛮清楚的(个人意见,仅供参考,欢迎指正)