我在理解某些类型的胎面循环制作之间的差异时遇到了问题。
其中一个是(粗略的演示):
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/