zoukankan      html  css  js  c++  java
  • 关于AsyncTask的一点问题

      今天在尝试多线程异步下载图片的时候遇到一些问题,其中关于asynctask的一点问题之前没注意到,感到蛮有意思的,先记下来。

    asynctask在实际运行过程中其实是由一个线程池控制的,这个线程池在启动大于5小于16个asynctask时会默认保持5个子线程,不会增加,大于5的那些消息会等5个子线程运行结束后才运行。且在asynctask的onPostExecute运行完后该线程也不会彻底终止,查看DDMS可以发现,这个线程池中的5个asynctask全处于wait状态。当启动的线程大于等于16个时,该线程池的线程数量会激增,基本上每新启一个asynctask都会建立一个单独的子线程。当大于5的子线程运行结束后会被彻底释放,最后还是会保持5个处于wait状态的子线程。

      至于如何彻底清空这个线程池,释放处于wait状态的子线程,没有继续深入研究,初看没发现直观的可行方法。如何大家对这方面有研究的话希望能够不吝赐教,谢谢啦。

  • 相关阅读:
    redis
    linux systemd
    分布式高可用架构演进
    c++ 多线程 信号量简单使用
    JAVA上传文件到FTP上
    JAVA字符串去掉html代码
    jQuery判断复选框是否勾选
    SpringBoot全局异常处理
    SpringBoot统一日志打印
    JAVA加解密之DES
  • 原文地址:https://www.cnblogs.com/hisneric/p/asynctask_1.html
Copyright © 2011-2022 走看看