问题 1 :
当每次点击界面上的item触发开启一个子线程,去请求网络数据,界面上的item很多,在用户迅速点击的情况下, 会新建n个子线程, 每个线程在内存中占用1M空间, 消耗非常大,如何优化这种多线程任务?
解决思路:
用线程池去处理这种多线程的任务, 线程池的核心线程个数为1 ,用有界队列将新的线程添加进来,有界队列的size 也为1,即在线程池中 只能同时允许1个线程运行, 1个线程等待,在将新的线程添加进线程池之前, 先将线程池的队列清空
问题2 :
当连续迅速点击界面上的item时,大概点击速度是50ms一次, 即当用户按住遥控键或者加速下滑的过程中, 如果每次都要执行new一个新线程然后将线程池的队列清空操作, 将新的线程加入到线程池队列中, 这种消耗也非常大,如何优化 ?
解决思路:
问题3 :
当点击很快的时候, 此时网络速度不稳定, 先执行的task后返回, 而此时页面需要将返回的数据通过notifyDataSetChanged()来更新界面, 会造成当前返回的数据并不是我想要的数据,这个如何解决?