关于线程和runnables

时间:2012-09-19 12:19:23

标签: java android multithreading handler runnable

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

一个是(粗略的演示):

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

第二个是:  制作一个imlpements可运行的课程,  创建一个帖子:

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

和第三个(在android中,我不知道如果它可以工作一些如何):  制作一个处理程序,  创建一个Runnable,  并拥有handler.postDelayed(runnable)handler.post(runnable)

我不明白有什么区别,我唯一注意到的是制作一个Thread使得run循环比使用一个处理程序快得多。 有人可以向我解释一下他们之间有什么区别,我应该用什么来做什么?

1 个答案:

答案 0 :(得分:2)

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

第三种方式有点被你误解了。 HandlerRunnable实例化的线程中运行Handler(除非您指定另一个looper)。如果您在UI线程中创建了Handler,它也将在UI线程中运行Runnable。结果它可能工作得更慢。