在我的Android应用程序中,我必须从服务器并行y获得近50个数据(50 AsyncTask
)。所以我使用executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
实现了我的逻辑。我读到了executeOnExecutor
,它一次只能运行5 AsyncTask
,并且它有一个大小为10的队列。我们可以保留最多10个等待AyncTask
。好的,现在在我的场景中我有50 AsyncTask
并且我不能同时并行执行50 AsyncTask
因为队列的大小只有10.所以我不能继续执行50 {{{ 1}}在一起。
所以我提出了另一个逻辑,在那里我将一起创建并执行5 AsyncTask
。我会在每个已执行AyncTask
的回调中开始新的AysncTask
。
第二个逻辑满足了我的要求。它工作得很好。
注意:这里我使用自己的AsyncTask
类,我正在使用Apache http客户端发出http请求。
现在,我刚刚听说了一个名为android-async-http的图书馆。我想用这个库重新实现上面的逻辑。
示例代码:
AsyncTask
所以我的问题是,
如何使用android-async-http库执行http请求并行y?
使用此库可以执行并行y的AsyncHttpClient client = new AsyncHttpClient();
client.get("http://www.google.com", new AsyncHttpResponseHandler() {
@Override
public void onSuccess(String response) {
System.out.println(response);
}
});
的最大数量是多少?
答案 0 :(得分:0)
原来这个你正在使用的库使用CachedThreadPool: http://www.blogjava.net/dashi99/archive/2012/08/06/384885.html
这意味着如果执行大量请求,它将创建相应执行它们的线程。如果线程空闲且没有关闭,它将为请求重用线程。所以我认为这意味着你的所有请求都会并行运行。