返回介绍

1、版本差别

发布于 2024-12-23 22:31:11 字数 1348 浏览 0 评论 0 收藏

1、线程池配置

android 3.0 以前线程池配置,代码如下所示:

private static final int CORE_POOL_SIZE = 5;//核心线程数量
private static final int MAXIMUM_POOL_SIZE = 128;//线程池中允许的最大线程数目
private static final it KEEP_ALIVE = 10;//当线程数目大于核心线程数目时,如果超过这个 keepAliveTime 时间,那么空闲的线程会被终止。
……  
private static final ThreadPoolExecutor sExecutor = new ThreadPoolExecutor(CORE_POOL_SIZE,  
    MAXIMUM_POOL_SIZE, KEEP_ALIVE, TimeUnit.SECONDS, sWorkQueue, sThreadFactory);  

android 3.0 以后更加灵活,根据 cpu 核数配置 CORE_POOL_SIZEMAXIMUM_POOL_SIZE

private static final int CPU_COUNT = Runtime.getRuntime().availableProcessors();//根据 cpu 的大小来配置核心的线程
private static final int CORE_POOL_SIZE = CPU_COUNT + 1;//核心线程数量
private static final int MAXIMUM_POOL_SIZE = CPU_COUNT * 2 + 1;//线程池中允许的最大线程数目
private static final int KEEP_ALIVE = 1;//空闲线程的超时时间

2、串行和并行,引用来自 这篇文章

  • android 1.5 以前的时候 execute 是串行执行的
  • android 1.6 直到 android 2.3.2 被修改为并行执行,执行任务的线程池就是 THREAD_POOL_EXECUTOR
  • android 3.0 以后,默认任务是串行执行的,如果想要并行执行任务可调用 executeOnExecutor(Executor exec, Params.. params) 。具体用法可参照 Android AsyncTask 的骗术

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。