关于Runnable 接口和继承 Thread 来实现多线程的区别,有句话我没看懂! 使用 Runnable 接口来实现多线程使得我们能够在一个类中包容所有的代码,有利于封装,它的缺点在于,我们只能使用一套代码,若想创建多个线程并使各个线程执行不同的代码,则仍必须额外创建类,如果这样的话,在大多数情况下也许还不如直接用多个类分别继承 Thread 来得紧凑。什么意思呢?? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 @(×#……%(@#还真说不出来发现我要打的时候就像一个程序里面可以同时做几件事情用runnable好要同时开几个程序做同一件事情用thred好我是这么理解的 Thread 要求你的类必须集成他,由于Java只允许单一集成,你这个类就不能继承其它类了!所以,为了灵活考虑,建议用 Runnable 接口来实现线程如果你的类很简单,用 extends Thread 也是很好的选择。 就是说Runnable是一个接口,一个类可以并且只可以继承一个类,但是一个类可以实现多个接口。所以当你的类已经继承了其他的类,就没有办法继承Thread类了,但这个时候你想实现线程的话就可以使用Runnable接口。就是这样啊~~ 说的经典,做程序是要尽量多的使用实现接口,而不是继承类。原因就是java只能单继承。 一个类可以只可以继承一个类,但是一个类可以实现多个接口。就比如你可以实现Runnable,也可以实现其他的接口。 所以当你想继承Thread类,又想用其他的功能而继承其他类的时候不可实现了,所以要实现Runnable接口,继承包含你想用的其他功能的类,增加了灵活性! 补充一下, 只要分别实现Runnable 接口就可以了, 而且还不影响该类去继承其他的父类 实现Runnable接口相对于继承Thread类来说,有如下显著的好处:1.适合多个相同程序代码的线程去处理同一资源的情况,把虚拟CPU(线程)同程序的代码、数据有效分离,较好地体现了面向对象的设计思想。2.可以避免由于JAVA的单继承特性带来的局限。我们经常碰到这样一种情况,即当我们要将已继承了某一个类的子类放入多线程中,由于一个类不能同时有两个父类,所以不能用继承Thread类的方式,那么,这个类就只能采用实现Runnable接口的方式了。3.有利于程序的健壮性,代码能够被多个线程共享,代码与数据是独立的。当多个线程的执行代码来自同一个类的实例时,即称它们共享相同的代码。多个线程可以操作相同的数据,与它们的代码无关。当共享访问相同的对象时,即它们共享相同的数据。当线程被构造时,需要的代码和数据通过一个对象作为构造函数实参传递进去,这个对象就是一个实现了Runnable接口的类的实例。事实上,几乎所有多线程应用都可以用实现Runnable接口的方式。 就是说Runnable是一个接口,一个类可以并且只可以继承一个类,但是一个类可以实现多个接口。 所以当你的类已经继承了其他的类,就没有办法继承Thread类了,但这个时候你想实现线程的话就可以使用Runnable接口。 为了灵活性考虑 类加载器的问题,没加载进来,不知怎么回事 关于this关键字,一直不理解,希望大家帮忙指点下。 怎么把基本类里的变量获取到servlet里 AE7.0汉化包注册机 一个困扰我已久的问题,一个我写得类,经常用到,放在那里才能谁是调用? 方法重载时,对子类抛出异常的限制。 有谁知道Visual Cafe的资料? 不明白的错误!!! 新手请教各位大神一个问题 一道Java训练题萌新求助各位大佬们... 机器改名后,oracle9i 服务启动不了了..... 这个正则表达式怎么匹配?
还真说不出来发现我要打的时候
就像一个程序里面可以同时做几件事情用runnable好
要同时开几个程序做同一件事情用thred好
我是这么理解的
说的经典,做程序是要尽量多的使用实现接口,而不是继承类。原因就是java只能单继承。
就比如你可以实现Runnable,也可以实现其他的接口。 所以当你想继承Thread类,又想用其他的功能而继承其他类的时候不可实现了,所以要实现Runnable接口,继承包含你想用的其他功能的类,增加了灵活性!
只要分别实现Runnable 接口就可以了, 而且还不影响该类去继承其他的父类
1.适合多个相同程序代码的线程去处理同一资源的情况,把虚拟CPU(线程)同程序的代码、数据有效分离,较好地体现了面向对象的设计思想。
2.可以避免由于JAVA的单继承特性带来的局限。我们经常碰到这样一种情况,即当我们要将已继承了某一个类的子类放入多线程中,由于一个类不能同时有两个父类,所以不能用继承Thread类的方式,那么,这个类就只能采用实现Runnable接口的方式了。
3.有利于程序的健壮性,代码能够被多个线程共享,代码与数据是独立的。当多个线程的执行代码来自同一个类的实例时,即称它们共享相同的代码。多个线程可以操作相同的数据,与它们的代码无关。当共享访问相同的对象时,即它们共享相同的数据。当线程被构造时,需要的代码和数据通过一个对象作为构造函数实参传递进去,这个对象就是一个实现了Runnable接口的类的实例。
事实上,几乎所有多线程应用都可以用实现Runnable接口的方式。
为了灵活性考虑