多线程任务的优化一

问题 1 :
当每次点击界面上的item触发开启一个子线程,去请求网络数据,界面上的item很多,在用户迅速点击的情况下, 会新建n个子线程, 每个线程在内存中占用1M空间, 消耗非常大,如何优化这种多线程任务?

解决思路:

用线程池去处理这种多线程的任务, 线程池的核心线程个数为1 ,用有界队列将新的线程添加进来,有界队列的size 也为1,即在线程池中 只能同时允许1个线程运行, 1个线程等待,在将新的线程添加进线程池之前, 先将线程池的队列清空


问题2 :

当连续迅速点击界面上的item时,大概点击速度是50ms一次, 即当用户按住遥控键或者加速下滑的过程中, 如果每次都要执行new一个新线程然后将线程池的队列清空操作, 将新的线程加入到线程池队列中, 这种消耗也非常大,如何优化 ?

解决思路:



问题3 :

当点击很快的时候, 此时网络速度不稳定, 先执行的task后返回, 而此时页面需要将返回的数据通过notifyDataSetChanged()来更新界面, 会造成当前返回的数据并不是我想要的数据,这个如何解决?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值