java - 做 runnable.run() 是不是错了?

标签 java android multithreading

我对多线程的概念还很陌生,有一个方面我不太清楚。

线程的创建和运行有两种方式:

  1. 扩展 Thread 类和 start() 线程。
  2. 创建一个 Runnable 对象,将其传递给 Thread 构造函数和 start() 线程。

this博客文章指出,我们始终应该使用 start() 启动一个线程,我对它的印象是这样的。

但在其中一个答案中here您可以看到一个人如何使用 runnable.run()。它给我的印象是有些错误的做法。

这正常吗?应该避免吗?您可以明确回答,但我们将不胜感激。

最佳答案

它们只是不同的东西。 run() 在当前线程中执行 Runnable。另一方面,调用 start() 会导致 Runnable 在新线程中运行。

教程指出这是一个陷阱。您在创建线程时经历了所有这些麻烦,因此如果您继续在当前线程中运行它,那么这很可能是一个错误。

关于java - 做 runnable.run() 是不是错了?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22852770/

相关文章:

java - 在最后一个构造函数结束后调用方法

java - 有没有基于Java bean生成网页的工具?

java - 如何维护不同屏幕尺寸的不同值文件夹的大小

java - 在android中随机执行一个按钮的点击

C信号量线程读取文件

java - java中如何结束一个线程?

java - 用Java发送数据报包

java - 如何对列表的每个元素调用 lambda 并在新列表中获取结果?我的工作版本太冗长

java - AndroidJavaProxy 不是一个接口(interface)

c++ - 使用多线程来模拟这个的好方法是什么?