¿Qué cambio realmente ocurrió en Async Task después de Android Gingerbread?

¿Qué cambio hizo realmente el equipo de Android en la tarea de Async después de Android 2.3. Cuando ejecuté el siguiente código, obtengo el mismo resultado en Android 2.3 y 3.0.

package com.sample.asynctask;

import android.app.Activity;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;

public class AsyncTaskTestActivity extends Activity {
    private static final String TAG = "AsyncTaskTestActivity";

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        //ExecutorService executorService = Executors.newFixedThreadPool(1);
        for (int i = 1; i <= 20; i++) {
            TestTask testTask = new TestTask(i);
            testTask.execute();
        }
    }

    private static class TestTask extends AsyncTask<Void, Integer, Void> {
        int i;
        public TestTask(int i) {
            Log.i(TAG, "Constructor for " + i);
            this.i = i;
        }

        @Override
        protected void onPreExecute() {
            // TODO Auto-generated method stub
            super.onPreExecute();
            Log.i(TAG, "onPreExecute for " + i);
        }

        @Override
        protected Void doInBackground(Void... params) {
            Log.i(TAG, i + " Thread goes to sleep");
            try {
                Thread.sleep(20000);
            } catch (InterruptedException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            Log.i(TAG, i + " Thread wakes up");
            return null;
        }

        @Override
        protected void onPostExecute(Void result) {
            // TODO Auto-generated method stub
            super.onPostExecute(result);
            Log.i(TAG, "onPostExecute for " + i);
        }
    }
}

Mi suposición en Gingerbread: 5 La tarea asíncrona se ejecuta en un grupo de subprocesos a la vez. Mi suposición en Honeycomb: 1 tarea asíncrona se ejecuta en un grupo de subprocesos a la vez. Exactamente como la ejecución concurrente.

Pero, tanto Gingerbread como Honeycomb ejecutan 5 tareas asíncronas al mismo tiempo.

Y también cuando el número para la tarea Async aumenta a 140. No obtengojava.util.concurrent.RejectedExecutionException .

Si mis suposiciones son correctas? ¿Qué está sucediendo realmente allí dentro?

Respuestas a la pregunta(3)

Su respuesta a la pregunta