0

我有以下空白:

public void load() {
//loading big picture from the Internet
}

我希望它在一个新线程中运行。我可以这样调用这个过程:

new Thread(new Runnable() {
public void run() {
load();
}
}).start();

或者最好修改这个空白:

public void load() {
new Thread(new Runnable() {
public void run() {
//loading big picture from the Internet
}
}).start();
}

并简单地称之为:

load();

还是没有什么不同?

4

1 回答 1

0

在功能上,它们是相同的。有些设计细节可能会让您考虑第一种方式而不是另一种方式。

如果您有很多不同的线程,它们不是自己的东西,但也称为load(). 在这种情况下,您已经创建了线程,所以如果他们打电话给您,load()您就不想/不需要创建另一个线程。

第二种选择非常方便。您可以简单地拨打load()任何您想要的电话。如果将来该load()方法更改为不阻塞的程度,那么您可以更改它,并且不需要进一步的代码更改。

或者,如前所述,考虑为此使用 AsyncTask。它专为您正在尝试做的事情而构建。

于 2012-05-28T15:04:56.433 回答