我正在学习Java中的多线程概念,在这里我遇到了这个非常有趣的行为。我正在尝试各种创建线程的方式。现在的问题是我们延长Thread
,而不是实现Runnable
接口。Java中有趣的线程行为
在附注中,我知道它实现了Runnable
接口的完美OO感,而不是扩展Thread
类,但对于此问题的目的,假设我们扩展了Thread
类。
让t
是我的我的扩展Thread
类的实例,我有一个代码块中是我的我的Thread
类的run()
方法中写后台执行。
它与t.start()
在后台完美运行,但我有点好奇,并调用t.run()
方法。这段代码在主线程中执行!
t.start()
这样做t.run()
不是吗?
我相信你可以在这里找到答案(这威力实际上打破你的面向对象的设计。): HTTP: //stackoverflow.com/questions/8579657/java-whats-the-difference-between-thread-start-and-runnable-run http://stackoverflow.com/questions/15841301/difference-between-running-and -starting-a-thread – 2014-08-29 09:49:37
http:// stackoverflow。com/a/13134221/3436942告诉你简单易懂的语言的区别。很多** t.start(); **正在创建/创建一个新线程,而** t.run(); **只是在主线程上调用它 – jbutler483 2014-08-29 09:51:02