Java Runnable接口和线程类实现调用堆栈之间的差异

Java Runnable接口和线程类实现调用堆栈之间的差异,java,Java,我知道Java中Runnable接口和Thread类之间的基本区别 但是,这两者之间有没有与Callstack相关的区别?区别在于,如果您扩展Thread类,您将无法扩展任何其他内容,但您几乎可以从类中调用start()方法,因为它是继承的。(别忘了重写run()方法) 另一个区别是,如果实现Runnable,您可以根据需要扩展另一个类,但是您需要将对象作为参数传递才能运行它,因为您只实现run()方法 除此之外,它们在执行方式上没有任何区别 编辑:我真的不明白“callstrack”是什么意思

我知道Java中
Runnable
接口和
Thread
类之间的基本区别


但是,这两者之间有没有与Callstack相关的区别?

区别在于,如果您扩展Thread类,您将无法扩展任何其他内容,但您几乎可以从类中调用start()方法,因为它是继承的。(别忘了重写run()方法)

另一个区别是,如果实现Runnable,您可以根据需要扩展另一个类,但是您需要将对象作为参数传递才能运行它,因为您只实现run()方法

除此之外,它们在执行方式上没有任何区别


编辑:我真的不明白“callstrack”是什么意思。

调用堆栈跟踪之间的区别在于您看到了额外的级别

e、 g.普通螺纹

at somepackage.SomeClass.someMethod
at java.lang.Thread.run
如果您使用MyRunnableClass,您将看到

at somepackage.SomeClass.someMethod
at mypackage.MyRunnableClass.run
at java.lang.Thread.run

也许,他的意思是调用堆栈!
at somepackage.SomeClass.someMethod
at java.lang.Thread.run
at somepackage.SomeClass.someMethod
at mypackage.MyRunnableClass.run
at java.lang.Thread.run