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