AsyncTask的坑

        Android2.3以前的版本,也即SDK/API 10和以前的版本内部的线程池限制是5个,也就是说同时只能有5个线程运行。

        从Android 3.0开始对AsyncTask的API做出了一些调整:

        1#execute()提交的任务,按先后顺序每次只运行一个

         2 新增了接口#executeOnExecutor()。这个接口允许开发者提供自定义的线程池来运行和调度Thread,如果你想让所有的任务都能并发同时运行,那就创建一个没有限制的线程池(Executors.newCachedThreadPool()),并提供给AsyncTask。这样这个AsyncTask实例就有了自己的线程池而不必使用AsyncTask默认的


        4.4.2默认线程池大小改为

      private static final int CPU_COUNT = Runtime.getRuntime().availableProcessors();

      private static final int CORE_POOL_SIZE = CPU_COUNT + 1;

     CORE_POOL_SIZE 由具体硬件决定。。。








你可能感兴趣的:(AsyncTask的坑)