AsyncTask的缺陷以及解决方法

在这里插入图片描述
1、AsyncTask常用于进行耗时操作,完成后更新主线程的UI。

2、缺陷:AsyncTask中维护着一个长度为128的线程池,同时可以执行5个工作线程,还有一个缓冲队列,当线程池中已有128个线程,缓冲队列已满时,如果此时向线程提交任务,将会抛出RejectedExecutionException。

3、解决方法:由一个控制线程来处理AsyncTask的调用判断线程池是否满了,如果满了则线程睡眠否则请求AsyncTask继续处理。
4、AsyncTask没有取消任务的接口,activity切换时容易造成内存泄漏和线程排队阻塞。
在这里插入图片描述

发布了224 篇原创文章 · 获赞 390 · 访问量 29万+

猜你喜欢

转载自blog.csdn.net/cui130/article/details/99885201