我对多线程的概念还很陌生,有一个方面我不太清楚。
线程的创建和运行有两种方式:
- 扩展 Thread 类和
start()
线程。 - 创建一个 Runnable 对象,将其传递给
Thread
构造函数和start()
线程。
和this博客文章指出,我们始终应该使用 start()
启动一个线程,我对它的印象是这样的。
但在其中一个答案中here您可以看到一个人如何使用 runnable.run()
。它给我的印象是有些错误的做法。
这正常吗?应该避免吗?您可以明确回答,但我们将不胜感激。
最佳答案
它们只是不同的东西。 run()
在当前线程中执行 Runnable。另一方面,调用 start()
会导致 Runnable 在新线程中运行。
教程指出这是一个陷阱。您在创建线程时经历了所有这些麻烦,因此如果您继续在当前线程中运行它,那么这很可能是一个错误。
关于java - 做 runnable.run() 是不是错了?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22852770/