Android中的嵌套线程(线程中的线程)
建议执行嵌套线程吗??我遇到了需要在线程中调用线程的情况。我也有其他选择,比如在同一个线程中实现所有方法,但是它变得太不整洁了。项目进行到一半时会被其他人接管,所以其他人可能很难把所有的东西都整合起来 另外,建议在一个线程内调用多个线程(原因与上面相同)Android中的嵌套线程(线程中的线程),android,multithreading,nested,Android,Multithreading,Nested,建议执行嵌套线程吗??我遇到了需要在线程中调用线程的情况。我也有其他选择,比如在同一个线程中实现所有方法,但是它变得太不整洁了。项目进行到一半时会被其他人接管,所以其他人可能很难把所有的东西都整合起来 另外,建议在一个线程内调用多个线程(原因与上面相同) 它是否会以任何方式影响性能(从逻辑上讲,它应该会提高性能,因为软件是为双核设备设计的)?创建新线程会给您带来更多麻烦,因此我建议您不要仅仅为了分离东西而手动创建新线程 如果您希望在主UI线程之外处理相当不同的工作块,则有。考虑将它们放入 Ayc
它是否会以任何方式影响性能(从逻辑上讲,它应该会提高性能,因为软件是为双核设备设计的)?创建新线程会给您带来更多麻烦,因此我建议您不要仅仅为了分离东西而手动创建新线程 如果您希望在主UI线程之外处理相当不同的工作块,则有。考虑将它们放入<代码> AycCastaseS,并且如果您想同时运行多个任务,则可以确保它们运行的执行器具有一个以上的线程池大小。
如果不详细说明问题的实质,就很难说正确的方法是什么。创建新线程会给您带来更多麻烦,因此我建议您不要仅仅为了分离内容而手动创建新线程 如果您希望在主UI线程之外处理相当不同的工作块,则有。考虑将它们放入<代码> AycCastaseS,并且如果您想同时运行多个任务,则可以确保它们运行的执行器具有一个以上的线程池大小。
如果不详细说明问题的实质,很难说正确的方法是什么。从@kabuko、@Fuzzical Logic获得答案并做了一些研究后,我发现嵌套线程实际上不可能使用AsyncTask,因为异步任务需要在UI线程内执行。
然而,我试图实现的是:
- 在初始UI线程中,调用不同的、要执行的多个AsyncTask 例如: 创建时受保护的void(Bundle savedInstanceState){ DownloadUpdates.execute(fileId);//异步任务#1 UpdateNotification.execute();//异步任务#2 ……}
- 但是,如果两个线程相互依赖,请避免使用任何此类逻辑,因为它的执行时间是不可预测的,并且 可能会陷入僵局什么的
- 此外,嵌套线程也可以使用普通线程(不使用AsyncTask),如@Fuzzical Logic所述
然而,我试图实现的是:
- 在初始UI线程中,调用不同的、要执行的多个AsyncTask 例如: 创建时受保护的void(Bundle savedInstanceState){ DownloadUpdates.execute(fileId);//异步任务#1 UpdateNotification.execute();//异步任务#2 ……}
- 但是,如果两个线程相互依赖,请避免使用任何此类逻辑,因为它的执行时间是不可预测的,并且 可能会陷入僵局什么的
- 此外,嵌套线程也可以使用普通线程(不使用AsyncTask),如@Fuzzical Logic所述
AsyncTask
的使用。它提供了比手动创建和管理线程更简单的方法来处理这个问题。我打算在另一个线程的doInBackground中调用一些“new downloaddupdates.execute(fileId)”和“new UpdateNotification.execute()”。developer.android.com没有谈到嵌套,这就是我在这里提出问题的原因。但是现在,既然你认为这是明智的,我就继续。谢谢。实际上对于AsyncTask
,您必须在UI线程上创建并执行它。您不能在doInBackground
中执行此操作。请参阅的线程规则部分。哦,是的,我以前在阅读文档时跳过了这一部分。谢谢因此,简而言之,嵌套线程本身是不可能的。该死无论如何,谢谢。我只是想让事情简单一些,提高程序的效率。如果我调用单个线程中的所有方法,那么执行可能会花费太长时间。所以我希望所有的方法同时运行,这样处理时间就更少了。实际上,方法之间没有关系,所以嵌套线程中方法的实现顺序无关紧要。我希望你明白我想说的。是的,当然。如果你有一些处理工作要做,这是有意义的。看看我链接的文章,尤其是