It depends on your android:targetSdkVersion="".
http://developer.android.com/reference/android/os/AsyncTask.html
When first introduced, AsyncTasks were executed serially on a single
background thread. Starting with DONUT, this was changed to a pool of
threads allowing multiple tasks to operate in parallel. Starting with
HONEYCOMB, tasks are executed on a single thread to avoid common
application errors caused by parallel execution.
If you truly want parallel execution, you can invoke
executeOnExecutor(java.util.concurrent.Executor, Object[]) with
THREAD_POOL_EXECUTOR.
The safest way is to execute them parallel with an Executor as mentioned above, but this requires the minimum SDK of 11. An alternative solution is to check the current SDK and use executor only when available:
if (Build.VERSION.SDK_INT >= 11) {
// use executor to achieve parallel execution
asy.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
} else {
// this way they will execute parallel by default
asy.execute();
}