当前位置:编程学习 > wap >>

AsyncTask 多线程并发导致Fatal signal 11 (SIGSEGV)

--------------------编程问答-------------------- Executor mExec = new ThreadPoolExecutor
这个传入到 CanvasImageTask 是做什么用的,

这个多个线程异步更新图片 不需要线程池的,
实例化2,3个线程,分批更新图片就OK 了。 --------------------编程问答--------------------
引用 1 楼 birdsaction 的回复:
Executor mExec = new ThreadPoolExecutor
这个传入到 CanvasImageTask 是做什么用的,

这个多个线程异步更新图片 不需要线程池的,
实例化2,3个线程,分批更新图片就OK 了。

android 3.0以后,AsyncTask是单线程执行的,也就是线程池只有一个线程在跑,其它的任务就会等待,
Executor mExec = new ThreadPoolExecutor的目的就是设置线程池有多个线程并发执行。
选择使用AsyncTask,是因为它有线程池,不用频繁的创建销毁线程,效率更高。 --------------------编程问答-------------------- 这个到没注意到,我自己以前更新ListView都是直接开 2到3个线程 分批加载图片,
个人认为也不需要开很多线程,如果你的ListView有N多个Item需要下载图片,很可能导致内存消耗过多。
有线程池的话,也不能立即利用上,比如网络堵塞的时候 很多线程就无法及时执行完。 --------------------编程问答-------------------- UP 自己顶下吧 --------------------编程问答-------------------- 除
补充:移动开发 ,  Android
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,