java - 关于线程和可运行对象

标签 java android multithreading handler runnable

我在理解某些类型的胎面循环制作之间的差异时遇到了问题。

其中一个是(粗略的演示):

Thread thread=new Thread("name") {
public void run()
  {
  // do stuff
  }
}.start();

第二个是: 制作一个实现可运行的类, 创建线程:

Thread thread = new Thread(this,"name").start();

第三个(在android中,我不知道它是否还能工作): 制作一个处理程序, 创建一个可运行的, 并具有handler.postDelayed(runnable)handler.post(runnable)

我不明白有什么区别,我唯一注意到的是创建线程使运行循环比使用处理程序运行得更快。 有人可以向我解释一下它们之间有什么区别以及我应该用什么来做什么吗?

最佳答案

第一种方式和第二种方式完全相同。只是不同的结构在不同的情况下更有用。请注意,Thread 实现了 Runnable 并且可能只是在新线程中运行自己。

第三种方法有点被你误解了。 Handler 在实例化 Handler 的线程中运行 Runnable(除非您指定另一个循环程序)。如果您在 UI 线程中创建了 Handler,它也会在 UI 线程中运行 Runnable。因此,它的工作速度可能会变慢。

关于java - 关于线程和可运行对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12494563/

相关文章:

java - 来自 ListView 的相同数据被多次打印

java - setText 方法无法正常工作?

java - 使用 Jax-RS 和 CDI 安排任务

C++ 多线程互斥锁问题

java - req.getsession().getservletcontext() 和 getservletcontext() 的区别

java - Portlets - 从服务器端保持 session Activity

java - 将对象副本传递给 hadoop 中所有映射器的最佳实践

java - 将数据从 HTML 选择发送到 Servlet

android - 添加工具栏后 Lollipop 上的抽屉导航为空

java - 一个事务可以有多个线程吗?