【问题标题】:Android Network ThreadingAndroid 网络线程
【发布时间】:2013-07-03 22:58:42
【问题描述】:

我正在创建一个可以同时发送多个网络调用的网络服务。当给服务一个 Executor 来运行时,使用 AsyncTask.THREAD_POOL_EXECUTOR 与一个新的 Executor 有什么好处。要考虑的事情是可以同时运行的任务数量与内存和 CPU 消耗。我对自己的 Executor 没有太多经验,所以我很感激我能得到的任何解释。提前致谢。

【问题讨论】:

    标签: java android multithreading network-programming


    【解决方案1】:

    Executor 是你实现的接口。这不是很难,但是 AsyncTask.THREAD_POOL_EXECUTOR 为您提供了一个 Executor 实现,可以为您节省一点精力。 AsyncTask 大体上就是这样:它没有任何魔法,它只是多线程的一个便利类。

    但是,AsyncTask 被设计为从 UI 线程调用,并且不应从 UI 线程调用“网络服务”,因此您必须自己滚动。

    【讨论】:

    • AsyncTasks 的问题是它们难以管理。您可能会从 Activity 的上下文中运行它们,这很容易出错。在服务中构建您自己的 TPE,并妥善管理它。
    猜你喜欢
    • 2018-01-13
    • 1970-01-01
    • 2010-09-13
    • 2013-06-26
    • 2016-03-12
    • 2011-12-12
    • 2014-06-30
    • 2023-04-01
    相关资源
    最近更新 更多