android 线程池的问题

新手中的新手 2013-09-12 09:45:00
public class ImgLoader {

private Context context;
final Map<String, SoftReference<Bitmap>> imgCache=
new HashMap<String, SoftReference<Bitmap>>();

public ImgLoader(Context context) {
super();
this.context = context;
}

private Handler mhandler=new Handler();
private PicManager pm=new PicManager(context, imgCache);
private FileUtils fuUtils=new FileUtils();
private ExecutorService threadPool=Executors.newFixedThreadPool(5);
private DownLoad dl=new DownLoad();

public Bitmap loadImg(final String url,final ImgCallBack callBack)
{
Bitmap bitmap=null;
try {

bitmap=pm.getFromCache(url);
System.out.println("ImgLoader--->执行??? ");
if(bitmap==null)
{
System.out.println("ImgLoader--->什么时候执行");
threadPool.submit(new Runnable() {

@Override
public void run() {
// TODO Auto-generated method stub
String fname=fuUtils.getFName(url);

dl.download(url,"picture/", fname);
final Bitmap bit=BitmapFactory.decodeStream(dl.getInput(url));
//imgCache.put(url,new SoftReference<Bitmap>(bit));
mhandler.post(new Runnable() {

@Override
public void run() {
// TODO Auto-generated method stub

callBack.refresh(bit);
}
});
}


});
}
} catch (Exception e) {
// TODO: handle exception
}

return bitmap;
}

}

1.线程池的理解:是不是创建线程池以后,就不用在创建线程了,可以直接拿线程池来用,并且可以指定线程池的数量,方便下载更多的图片。 理解有没有问题 求指点?
2.如果我要下载100张图片 调用100次这个方法。会是怎么的结果?是不是每5张5张的下载(5个线程池是不是意味着开启5条线程在下载这100张图片)? 就解释?


最近在做远程下载图片,想引用线程池这个概念。。 有谁有叫深理解,最好是直白,举例说明下!!!小弟不甚感激!!!!望大神拿出奉献精神!!!!!
...全文
99 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
逐Ls梦 2013-09-13
  • 打赏
  • 举报
回复
mhandler.post(new Runnable() { @Override public void run() { // TODO Auto-generated method stub callBack.refresh(bit); } 你在子线程做下面这个怎么感觉那么别扭呢?可能不会刷新UI,post是在ui线程去调的。
逐Ls梦 2013-09-13
  • 打赏
  • 举报
回复
楼上说得正确,其实你这两个问题是一个问题。 1,线程池就是一池子,要用就拿,不够就等的过程 2,下100张,就会排100个下载图片线程的队列,1-5在执行,如果其中一个终止,则第6个开始
mmorss 2013-09-13
  • 打赏
  • 举报
回复
1,线程创建好就一直在那里,等待任务,CPU,来了就执行,节省了创建,销灰线程的时间 2,下100张,就会排一个100张的队列,只有前面的下载完了好后的才能开始奥,是5张5张的下,但肯定不能这样啊,100张一张100K,也有10M了,手机不能这样下,不然就只能等了

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧