是否建议实现嵌套线程?我遇到了需要在线程中调用线程的情况。我也有其他选择,比如在同一个线程中实现所有方法,但它变得太不整洁了。该项目中途将被其他人接管,因此其他人可能很难将所有东西放在一起。
还建议在一个线程内调用多个线程(出于与上述相同的原因)。
它会以任何方式影响性能吗(从逻辑上讲,它应该会提高性能,因为该软件是为双核设备设计的)?
是否建议实现嵌套线程?我遇到了需要在线程中调用线程的情况。我也有其他选择,比如在同一个线程中实现所有方法,但它变得太不整洁了。该项目中途将被其他人接管,因此其他人可能很难将所有东西放在一起。
还建议在一个线程内调用多个线程(出于与上述相同的原因)。
它会以任何方式影响性能吗(从逻辑上讲,它应该会提高性能,因为该软件是为双核设备设计的)?
创建新线程会给您带来更多麻烦,因此通常我建议您不要仅仅为了分离而手动创建新线程。
如果您希望在主 UI 线程之外处理相当不同的工作块,则可以使用更简单的方法来处理线程。考虑将它们放入AsyncTask
s 中,如果您想同时运行多个任务,您可以确保它们运行的执行程序具有大于一个的线程池大小。
如果不详细说明您的问题实际上是什么,就很难准确地说出正确的方法是什么。
在得到@kabuko、@Fuzzical Logic 的回答并进行了一些研究后,我发现使用 AsyncTask 嵌套线程实际上是不可能的,因为 AsyncTask 需要在 UI 线程中执行。
但是,我试图实现的可以通过以下方式完成:
在初始 UI 线程中,调用不同的、多个 AsyncTask 来执行。
例子:
protected void onCreate(Bundle savedInstanceState) {.....
DownloadUpdates.execute(fileId); //异步任务#1
UpdateNotification.execute(); //异步任务#2
……}
注意(如此处文档中所述):
单个任务只能执行一次(如果尝试第二次执行会抛出异常)