【发布时间】:2013-04-01 14:01:21
【问题描述】:
在我的应用程序中,我必须调用一个完成一些繁重工作的方法(我能感觉到设备滞后)。为了避免这种情况,我创建了一个AsyncTask,它工作得非常好。
我使用Thread 实现了同样的事情,在这里,它也没有出现任何问题并且工作正常。
现在我的问题是哪一个性能更好 - AsyncTask 或 Thread。
我知道AsyncTask 使用线程池来执行后台任务,但在我的情况下它只会被调用一次。所以我认为这不会造成任何问题。
有人可以解释一下吗。我应该使用哪个以获得更好的性能?
注意:两者都在我的活动中被调用,例如来自 UI 线程。
【问题讨论】:
-
两者之间不太可能有显着的性能差异。
AsyncTasks 允许在 UI 线程上进行有效的多线程,而普通线程不允许对 UI 进行更改。这是两者之间的主要区别,除了AsyncTask使用线程池(正如你所说,这不会影响你) -
这个问题也有讨论过:stackoverflow.com/questions/9296539/…
-
感谢 HXCaine 的 cmets。正如上面链接的答案所说,“每次创建新线程时,您都在创建一个新线程”。真的。但就我而言,我只调用一次。所以它不能满足我的问题。