android 线程池的问题
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张图片)? 就解释?
最近在做远程下载图片,想引用线程池这个概念。。 有谁有叫深理解,最好是直白,举例说明下!!!小弟不甚感激!!!!望大神拿出奉献精神!!!!!