1

是否建议实现嵌套线程?我遇到了需要在线程中调用线程的情况。我也有其他选择,比如在同一个线程中实现所有方法,但它变得太不整洁了。该项目中途将被其他人接管,因此其他人可能很难将所有东西放在一起。

还建议在一个线程内调用多个线程(出于与上述相同的原因)。

它会以任何方式影响性能吗(从逻辑上讲,它应该会提高性能,因为该软件是为双核设备设计的)?

4

2 回答 2

1

创建新线程会给您带来更多麻烦,因此通常我建议您不要仅仅为了分离而手动创建新线程。

如果您希望在主 UI 线程之外处理相当不同的工作块,则可以使用更简单的方法来处理线程。考虑将它们放入AsyncTasks 中,如果您想同时运行多个任务,您可以确保它们运行的​​执行程序具有大于一个的线程池大小。

如果不详细说明您的问题实际上是什么,就很难准确地说出正确的方法是什么。

于 2012-06-09T07:13:03.093 回答
0

在得到@kabuko、@Fuzzical Logic 的回答并进行了一些研究后,我发现使用 AsyncTask 嵌套线程实际上是不可能的,因为 AsyncTask 需要在 UI 线程中执行。
但是,我试图实现的可以通过以下方式完成:

  • 在初始 UI 线程中,调用不同的、多个 AsyncTask 来执行。

    例子:

    protected void onCreate(Bundle savedInstanceState) {.....

    DownloadUpdates.execute(fileId); //异步任务#1

    UpdateNotification.execute(); //异步任务#2

    ……}

注意(如此处文档中所述

单个任务只能执行一次(如果尝试第二次执行会抛出异常)

  • 但是,如果两个线程相互依赖,请避免使用任何此类逻辑,因为它的执行时间是不可预测的,并且可能会陷入死锁或其他问题。
  • 此外,如@Fuzzical Logic 所述,使用普通线程(不使用 AsyncTask)也可以实现嵌套线程
于 2012-06-11T06:03:53.567 回答