Tar*_*riq 25 java multithreading runnable
Java Thread本身实现了Java Runnable!并且根据Internet上的大多数专家,实现Runnable比扩展Thread更受欢迎!即使我们不能在Thread类的线程意义上使用Runnable!
那么为什么我们更喜欢实现Runnable过度扩展,Thread因为在这两种情况下,通过调用一个Thread实现的方法(即start()或者run())来说明实际的线程,尽管在Thread我们没有真正"扩展" Thread仅通过覆盖run()方法的功能的情况下?
如果我听起来很混乱,我道歉......
Aas*_*ray 65
最常见的区别是:
扩展Thread类时,不能扩展所需的任何其他类.(如您所知,Java不允许继承多个类).实现Runnable时,可以为类保存一个空间,以便将来或现在扩展任何其他类.
但是,显着的区别是.
当您扩展Thread类时,每个线程都会创建唯一对象并与之关联.实现Runnable时,它将同一对象共享给多个线程.
请查看:http: //manikandanmv.wordpress.com/tag/extends-thread-vs-implements-runnable/
如果你的类正在扩展Thread类,那么它就会变成一个继承Thread类属性的单个线程,所以它会很重.(当扩展Thread类时,每个线程都会创建唯一对象并与之关联,但在实现Runnable时,它会将同一个对象共享给多个Threads).
如果你的类是实现Runnable接口,那么你只覆盖run().So这个实例创建一个单独的Thread,每个单独的Thread单独运行,但不是作为程序中的单个重线程.另外,由于Java不支持多重继承,如果实现Runnable,你将避免多次扩展的问题,因此如果你实现Runnable接口,你可以扩展除Thread类之外所需的任何类.